2016-08-09 116 views
0

我通過陣列試圖環和它口口聲聲說length的陣列是0的Javascript遍歷對象

截圖數組:

screenshot

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

我敢肯定這是一個菜鳥mista柯,任何人都可以發現它嗎?

我正在使用的代碼:

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。怎麼樣?

+2

看起來像這可能是一個異步問題。你從哪裏得到數組? –

+0

是啊,你從哪裏得到'長度'......看起來像一個任意變量。 'for ... loop'應該足夠了,但是你可以顯示一些代碼,因爲我們看不到任何東西 –

+1

你的問題不是循環。當你想要達到它時,你的數組是空的。向我們展示更多代碼。 – Doruk

回答

1

沒有提供代碼,很難說如果你犯了一個菜鳥錯誤!我看到你正在使用length而不是arrayName.length?我不知道您的數組的名稱...

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

無效,長度= 0 – g3mini

+0

您可以使用您正在嘗試@ g3mini的代碼編輯您的文章嗎? –

+0

我已經這樣做了:D – g3mini