如何通过使用 forEach 改进我的逻辑,而不是 Javascript 中的循环
How can I Improve my logic by using forEach, not for loop in Javascript
请先检查我的代码
我使用了axios.all(GET方法)。
.then((res) => {
let everyDataArray = [];
console.log(res); // output = [ {response}, {response} ]
for(let i=0; i < res.length; i++) {
everyDataArray.push(...res[i].response)
}
})
现在,我正在使用 for 循环将所有响应组合到一个数组中。
但是,我想做的是使用 forEach,而不是 for。
我检查过 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach ,
但仍在研究方法。谢谢。
您真正想要的是使用 map
(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),因为您想将一个数组转换为另一个数组。
需要明确的是,forEach
适用于您想要将函数应用于每个项目以用于副作用(如打印)的情况,而不是收集 return 值。
你可以简单地使用地图。
.then((res) => {
console.log(res); // output = [ {response}, {response} ]
let everyDataArray = res.map(item => item.response);
})
您的代码可能如下所示:
.then((res) => {
let everyDataArray = res.reduce((a,c)=>(a.push(...c.response),a),[]);
// ...
console.log(everyDataArray);
})
我使用 .reduce()
而不是 .map()
,因为生成的数组与输入数组的长度不同。
请先检查我的代码
我使用了axios.all(GET方法)。
.then((res) => {
let everyDataArray = [];
console.log(res); // output = [ {response}, {response} ]
for(let i=0; i < res.length; i++) {
everyDataArray.push(...res[i].response)
}
})
现在,我正在使用 for 循环将所有响应组合到一个数组中。
但是,我想做的是使用 forEach,而不是 for。
我检查过 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach ,
但仍在研究方法。谢谢。
您真正想要的是使用 map
(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),因为您想将一个数组转换为另一个数组。
需要明确的是,forEach
适用于您想要将函数应用于每个项目以用于副作用(如打印)的情况,而不是收集 return 值。
你可以简单地使用地图。
.then((res) => {
console.log(res); // output = [ {response}, {response} ]
let everyDataArray = res.map(item => item.response);
})
您的代码可能如下所示:
.then((res) => {
let everyDataArray = res.reduce((a,c)=>(a.push(...c.response),a),[]);
// ...
console.log(everyDataArray);
})
我使用 .reduce()
而不是 .map()
,因为生成的数组与输入数组的长度不同。