我已經從firebase中拉下來,並被賦予了一個數組的有效載荷,其中有3個對象,它們本身包含對象。如何遍歷數組內的對象內的對象
請看下面的截圖:
這是當我CONSOLE.LOG我幾個月陣列會發生什麼。
我該如何迭代通過這個來註銷我想從對象內部獲得的任何信息?
例如我想要什麼在月內和內部P1,P2。
我試圖做
this.state.months.map()
然後登錄month.month
但返回undefined。
有什麼想法?
我已經從firebase中拉下來,並被賦予了一個數組的有效載荷,其中有3個對象,它們本身包含對象。如何遍歷數組內的對象內的對象
請看下面的截圖:
這是當我CONSOLE.LOG我幾個月陣列會發生什麼。
我該如何迭代通過這個來註銷我想從對象內部獲得的任何信息?
例如我想要什麼在月內和內部P1,P2。
我試圖做
this.state.months.map()
然後登錄month.month
但返回undefined。
有什麼想法?
如何在for
循環內對陣列使用for-in
循環?
for (var i = 0, l = this.state.months.length; i < l; i++) {
var obj = this.state.months[i];
for (var key in obj) {
//check if obj owns the property and not some prototype
if (obj.hasOwnProperty(key)) {
console.log(obj[key].p1); //what do we do with p1?
console.log(obj[key].p2); //what do we do with p2?
}
}
}
,這會在每次迭代中輸出相同的值?即p1.score和p1.name會在每個循環中打印出來,而不是每次迭代時都會更改。如果這有什麼意義 –
如何發佈示例json? –
嘗試以這種方式
jList = this.state.months
jList.map(jList=>(jList.month+ ", "+ jList.p1 + ", " + jList.p2))
輸出 -將是一個數組
["some-Monthname, p1-someval, p2-someval", ... ]
只需根據您提供的截圖中,你有對象的數組包含月份對象。您可以循環訪問該數組,然後將它們映射到僅包含月份及其信息的數組中。這將使得處理這些月份更易於管理。
var months = this.state.months.forEach(function(item) {
return { month: item.month, p1: item.p1, p2: item.p2 };
});
然後你訪問月份和它的數據就像這樣。
console.log('Month is ', months[0].month, '. p1 object data is ', months[0].p1 '. and p2 object data is ', months[0].p2);
使用嵌套循環 – bigbounty
這些「-Kuog ...」是什麼東西? – lilezek
我認爲這些是由服務器生成的密鑰。 @lilezek – bigbounty