簡體   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