2017-06-08 100 views
0

我知道迭代已被覆蓋 - 我通常很好,但這次掙扎。在對象中迭代對象數組 - javascript?

,我有以下信息,我通過努力循環:

Object { leaving: object { all: array[10] } } 

我可以很容易地通過返回返回一個結果:

var html = '<p>' + news.leaving.all[0].departure_time + '</p>'; 

但當我嘗試循環:

var html = ""; 
    var i; 
    for (i = 0; i < news.length; i++) {     
     html += 
     '<p>' + news[i].leaving.all.departure_time '</p>'; 
    } 

我什麼也沒得到...

任何幫助,這將是偉大的。

感謝

+0

可以提供陣列的數據? – Thinker

+0

「news」是你寫在頂部的對象嗎?它的長度屬性是什麼? (線索:它看起來像我沒有一個。)你也應該考慮使用[forEach](https://stackoverflow.com/a/10167931/5920499)數組。 – daphtdazz

+0

消息不是數組,news.leaving.all是。問題是一個簡單的錯字問題,不太可能對未來的訪客有用 – Alex

回答

3

它看起來像你需要

'<p>' + news.leaving.all[i].departure_time '</p>'; 

而不是

'<p>' + news[i].leaving.all.departure_time '</p>'; 

for (i = 0; i < news.length; i++) {     

改變

for (i = 0; i < news.leaving.all.length; i++) {     
+0

謝謝@ykay ...我早些時候嘗試過,但它也沒有工作... – webcreator25

+2

可能是因爲你看着'new.length'也應該切換 – Dellirium

2

您還可以遍歷 「所有」 成員:

var html = ""; 
for (var i = 0; i < news.leaving.all.length; j++) {     
    html += 
    '<p>' + news.leaving.all[i].departure_time '</p>'; 
} 
0

你必須遍歷news.leaving.all

// Let's say this is our data 
 
var news = { 
 
    leaving: { 
 
    all: [{ 
 
     departure_time: '01:00' 
 
    }, 
 
    { 
 
     departure_time: '02:00' 
 
    }, 
 
    { 
 
     departure_time: '02:00' 
 
    }] 
 
    } 
 
}; 
 

 
var html = ""; 
 
var i; 
 
for (i = 0; i < news.leaving.all.length; i++) {     
 
    html += '<p>' + news.leaving.all[i].departure_time + '</p>'; 
 
} 
 
     
 
console.log(html); 

1

您可以使用Array.prototype.forEach()來遍歷數組news.leaving.all

代碼示例:

var news = {leaving: {all: [{departure_time: '01:00'},{departure_time: '02:00'},{departure_time: '03:00'}]}}, 
 
    html = ""; 
 
    
 
news.leaving.all.forEach(function (n) { 
 
    html += '<p>' + n.departure_time + '</p>'; 
 
}); 
 

 
console.log(html);