我做了这样的数组:
var multiarray = {
cat:{
name:'hellokitty',
legs:4
},
dog:{
name:'fred',
legs:4
}
};
我只是想展示,猫和狗。像这样
console.log(multiarray[0]) => cat
。
但它不起作用。
猫与狗是一种身份。我想在多维对象数组中显示id。
答案 0 :(得分:2)
你想要这个:
Command: storeAttribute
Target: //table[@id='dtgList']/tbody/tr[1]/td/a@href
Value: varNewWindow
Command: echo - I've read that the echo command is optional, but I used it
Target: ${varNewWindow}
Value:
Command: openWindow
Target: ${varNewWindow}
Value: Profile - again, this is where we assign the new name
Command: Pause
Target: 10000
Value:
Command: selectWindow
Target: Profile - and then use the new name
Value:

正如评论中所注意到的,您的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
将返回一个数组:对象键列表。
请注意,Javascript不保证对象中的密钥(或'属性')顺序。换句话说,你不应该假设“猫”。会先到。
答案 1 :(得分:1)
正如其他用户之前所说,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语句迭代键。
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,)