我做了这样的数组:
var multiarray = {
cat:{
name:'hellokitty',
legs:4
},
dog:{
name:'fred',
legs:4
}
};
我只想展示,猫和狗。像这样CCD_ 1。但它不起作用。
猫和狗是一种id。我想在多维对象数组中显示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不保证对象中的键(或"属性")顺序。换句话说,你不应该认为"猫"会排在第一位。
正如其他用户之前所指出的,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
Object的所有原型都可以在JavaScript中枚举。您可以使用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,)