繁体   English   中英

如何通过在 Javascript 中使用 forEach 而不是 for 循环来改进我的逻辑

[英]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

但仍在研究如何。 谢谢你。

您真正想要的是使用maphttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map ),因为您想将一个数组转换为另一个数组。

需要明确的是, forEach适用于您希望将函数应用于每个项目以用于副作用(如打印)而不是收集返回值的情况。

你可以简单地使用地图。

.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()因为结果数组与输入数组的长度不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM