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