我做了數組是這樣的:多維陣列顯示
var multiarray = {
cat:{
name:'hellokitty',
legs:4
},
dog:{
name:'fred',
legs:4
}
};
我只想顯示,貓,狗等。像這樣 console.log(multiarray[0]) => cat
。 但它不起作用。
貓和狗是一種身份證。我想在多維對象數組中顯示id。
我做了數組是這樣的:多維陣列顯示
var multiarray = {
cat:{
name:'hellokitty',
legs:4
},
dog:{
name:'fred',
legs:4
}
};
我只想顯示,貓,狗等。像這樣 console.log(multiarray[0]) => cat
。 但它不起作用。
貓和狗是一種身份證。我想在多維對象數組中顯示id。
你想這樣的:
var multiarray = {
cat:{
name:'hellokitty',
legs:4
},
dog:{
name:'fred',
legs:4
}
};
console.log(Object.keys(multiarray)[0]);
console.log(Object.keys(multiarray)[1]);
正如在評論中注意到,您的multiarray
實際上是一個對象。
另一方面,Object.keys(multiarray)
將返回一個數組:對象鍵的列表。
請注意,JavaScript不保證對象中的鍵(或「屬性」)順序。換句話說,你不應該假設'貓'會先來。
非常感謝。 – Soo
很高興你給出瞭解釋,我擔心它會留作* *「試試這個」*類型的答案。 –
正如前面注意到的其他用戶,multiarray
變量實際上是Object
的原型,而不是Array
。
var multiarray = {
cat:{
name:'hellokitty',
legs:4
},
dog:{
name:'fred',
legs:4
}
};
console.log(typeof(multiarray)); //"object"
console.log(typeof(multiarray) == Array); //false
對象的所有原型在JavaScript中枚舉。你可以用for ...在聲明中遍歷鍵。
for ... in聲明以任意順序迭代 對象的枚舉屬性。對於每個不同的屬性,可以執行語句 。
var multiarray = {
cat:{
name:'hellokitty',
legs:4
},
dog:{
name:'fred',
legs:4
},
ape:{
name:'charlie',
legs:2
},
elephant:{
name:'big indian',
legs:4
}
};
for(var k in multiarray) { console.log(k); } //will print keys (cat, dog, ape, elephant,)
這是與屬性的對象,它不是一個數組。 –
這裏'multiarray'是一個對象而不是數組。你可以使用'console.log(multiarray ['cat'])'來獲取內部'cat'對象。 –