如何通过使用 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(),因为生成的数组与输入数组的长度不同。