簡體   English   中英

數組未遍歷每個元素

[英]array not iterating through each element

以下是來自后端的響應

 results = [{ "name": "FantasticBeasts", "count": 546809, }, { "name": "SSIPOS", "count": 16257, }, { "name": "xyz", "count": 16257, } ] for (var i = 0; i <= results.length; i++) { console.log('result ==>', results[i]); } 

我的最終目標是從數組的每個元素中獲取名稱。 但是在此之前,我需要遍歷數組元素。 但是我無法遍歷數組元素。

結果==>未定義

它應該是i < results.length因為使用<=您正在比較其他不存在的值。

 results = [{ "name": "FantasticBeasts", "count": 546809, }, { "name": "SSIPOS", "count": 16257, }, { "name": "xyz", "count": 16257, } ] for (var i = 0; i < results.length; i++) { console.log('result ==>', results[i]); } 

在javascript數組中,索引為0,因此,長度為1的索引為0。 所以我們需要從0到< length<= length-1

 results = [{ "name": "FantasticBeasts", "count": 546809, }, { "name": "SSIPOS", "count": 16257, }, { "name": "xyz", "count": 16257, } ] for (var i = 0; i < results.length; i++) { console.log("Name:", results[i].name, "Count:", results[i].count); } results.forEach(function(result) { console.log("Name:", result.name, "Count:", result.count); }); 

forEach是達到相同結果的更簡潔的方法。

參考: https : //developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

您從0迭代到array.length-1 因此,您必須替換:

i <= results.length;

通過:

i < results.length;

在這種情況下,使用forEach效率更高,因為它更具可測試性,並且可以提供更多控制權,而無需手動訪問索引。

results.forEach(r => console.log(`result ==> ${r.name}`));

您還可以查看.forEach ,然后通過引用傳遞該函數(無參數)。

results.forEach(console.log);

這將控制台記錄每個結果。

暫無
暫無

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

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