.reduce() 在 javascript 中不返回数组
.reduce() not returning array in javascript
我写了一个函数,它从 XML 请求中接受解析的 JSON,当我使用 forEach() 时它可以工作,所以我想使用 reduce() 来推动我可以做的事情JS。我做错了什么?
forEach 函数:
function whatTemp48h(response){
var data;
data = response ;
var temp = [];
data.hourly.data.forEach(function(el,inx){
temp.push(el.apparentTemperature)
})
console.log(temp)
return temp;
}
归约函数:
function gimmeThaTemps(res){
return res.hourly.data.reduce(function(accu,el,c){
accu.push(el.apparentTemperature);
return accu;
},[]);
}
当我使用 reduce 时,它不会 return 任何东西。
我正在使用 AJAX 调用 return 一些已解析的 JSON 并且我正在调用 AJAX 函数并向其发送回调。
function getWeather(lat,long, cb){
var xhr = new XMLHttpRequest();
var response;
xhr.open('GET','https://api.darksky.net/forecast/'+api_KEY+'/'+lat+','+long,true);
xhr.onload = function() {
// console.log(this.responseText)
// console.log(JSON.parse(this.responseText));
cb(JSON.parse(this.responseText));
};
xhr.onerror = function() {
console.log("Connection error");
};
xhr.send();
}
当我打电话时
var reqReturn = getWeather(decodeMTL.lat,decodeMTL.long,gimmeThaTemps)
console.log(reqReturn);
抱歉这个新问题,但我仍在学习 JS。
P.s。我的命令行中有一个 XMLhttpprerequest 节点 npm 运行。
有点off-topic,你找的大概是函数map
:
return res.hourly.data.map(function(el) { return el.apparentTemperature; });
或使用 lambda:
return res.hourly.data.map(el => el.apparentTemperature);
我的代码有误。我在回调中返回,因此它无处返回!!!
我写了一个函数,它从 XML 请求中接受解析的 JSON,当我使用 forEach() 时它可以工作,所以我想使用 reduce() 来推动我可以做的事情JS。我做错了什么?
forEach 函数:
function whatTemp48h(response){
var data;
data = response ;
var temp = [];
data.hourly.data.forEach(function(el,inx){
temp.push(el.apparentTemperature)
})
console.log(temp)
return temp;
}
归约函数:
function gimmeThaTemps(res){
return res.hourly.data.reduce(function(accu,el,c){
accu.push(el.apparentTemperature);
return accu;
},[]);
}
当我使用 reduce 时,它不会 return 任何东西。 我正在使用 AJAX 调用 return 一些已解析的 JSON 并且我正在调用 AJAX 函数并向其发送回调。
function getWeather(lat,long, cb){
var xhr = new XMLHttpRequest();
var response;
xhr.open('GET','https://api.darksky.net/forecast/'+api_KEY+'/'+lat+','+long,true);
xhr.onload = function() {
// console.log(this.responseText)
// console.log(JSON.parse(this.responseText));
cb(JSON.parse(this.responseText));
};
xhr.onerror = function() {
console.log("Connection error");
};
xhr.send();
}
当我打电话时
var reqReturn = getWeather(decodeMTL.lat,decodeMTL.long,gimmeThaTemps)
console.log(reqReturn);
抱歉这个新问题,但我仍在学习 JS。 P.s。我的命令行中有一个 XMLhttpprerequest 节点 npm 运行。
有点off-topic,你找的大概是函数map
:
return res.hourly.data.map(function(el) { return el.apparentTemperature; });
或使用 lambda:
return res.hourly.data.map(el => el.apparentTemperature);
我的代码有误。我在回调中返回,因此它无处返回!!!