簡體   English   中英

迭代數組並根據條件將值添加到第二個數組

[英]Iterate over an array and add values to second array based on condition

我必須將值從一個數組傳遞到另一個數組,條件是名稱以“A”開頭。

 var favorites = [] var famous = [ 'alex smith', 'amy whinehouse', 'cameron diaz', 'brad pitt', 'ashton kutcher', 'mark whalberg', 'morgan freeman', 'mila kunis'] for (var i=0; i<famous.length; i++ ) { if(famous[i][0]==="a") { favorites.push((famous[i][0]).unshift()) } }

控制台返回一個錯誤。

使用 ES6 你可以這樣寫:

 var famous = ['alex smith', 'amy whinehouse', 'cameron diaz', 'brad pitt', 'ashton kutcher', 'mark whalberg', 'morgan freeman', 'mila kunis'] var favorites = famous.filter(artist => artist[0] == 'a'); console.log(favorites)

您的原始代碼應如下所示:

 var favorites = [] var famous = ['alex smith', 'amy whinehouse', 'cameron diaz', 'brad pitt', 'ashton kutcher', 'mark whalberg', 'morgan freeman', 'mila kunis'] for (var i=0; i<famous.length; i++) { if (famous[i][0]==='a') { favorites.push(famous[i]); } } console.log(favorites)

您的錯誤代碼TypeError: famous[i][0].unshift is not a function表示您試圖在不是數組的東西上使用數組函數。 您在字符串上調用函數unshift但對於字符串,該函數根本不存在。

您可以使用過濾方法

 var favorites = []; var famous = [ 'alex smith', 'amy whinehouse', 'cameron diaz', 'brad pitt', 'ashton kutcher', 'mark whalberg', 'morgan freeman', 'mila kunis']; var favorites = famous.filter((artist, index) => { if (artist[0] == 'a') { delete famous[index]; return true } return false; }); famous = famous.filter(Boolean) console.log(famous) console.log(favorites)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM