簡體   English   中英

Javascript遍歷對象數組

[英]Javascript loop through array of objects

我試圖遍歷一個數組,它一直說length0

數組的屏幕截圖:

屏幕截圖

我嘗試過for(key in results)...for( var i = 0; i < length...但是在循環中都沒有運行任何東西: console.log(results[i]); // Or key if it's a key in loop

我確定這是一個菜鳥錯誤,有人可以發現嗎?

我正在使用的代碼:

    var store = new Lawnchair({name: 'testing'}, function (store) {

        // Create an object
        var me = {key: 'Jordy', age: 19, date_of_birth: "1233-09-06"};
        var mee = {key: 'dude', age: 17, date_of_birth: "2222-09-06"};
        var meee = {key: 'gast', age: 8, date_of_birth: "5555-09-06"};

        // Save it
        store.save(me);
        store.save(mee);
        store.save(meee);

//         Access it later... Yes even after a page refresh!
        store.where('record.age < 20', function (records) {
            var html = "";
            var list = document.getElementById('people');
//            for (var i = 0; i < records.length; i++) {
//                var record = records[i];
//                html += "<li>" + record.key + " is " + record.age + " years old and was born on " + record.date_of_birth + "</li>";
//            }

            for(var key in records){
                console.log("SD");
            }

            console.log(records);
            list.innerHTML = html;

        });
    });

當我在上方看到console.log(records) ,結果是屏幕截圖。 當我遍歷它時,什么都沒有發生,因為records.length === 0

編輯:

store.where('record.age < 20', function(records){
        console.log(records); // Array with property length 3
        console.log(records.length); // 0
    });

第一個console.log顯示帶有records.length === 3的數組,但是第二個console.log顯示0 怎么樣?

如果不提供代碼,很難說出您是否犯了菜鳥錯誤! 我看到您正在使用長度而不是arrayName.length? 我不知道您的陣列名稱...

for (var i = 0; i < array.length;i++){
    //logic here
    };

要迭代數組並產生副作用,請使用https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

例如

[1,2,3,4].forEach(num => console.log(num));

另一方面,如果您需要過濾或變換數組,請考慮使用過濾器,映射或縮小。 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array

暫無
暫無

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

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