我有点困惑:
我有这样的命令列表:
var commands = [{"command": "read"}, {"command": "write"}, {"command": "login"}];
如果我尝试访问以下命令之一,它将起作用:
console.log(commands[0]["command"]); // Output is "read"
console.log(commands[0].command); // Output is "read"
但是,如果我尝试这样做,输出始终是不确定的:
for(command in commands)
console.log(command["command"]); // undefined, undefined, undefined
最佳答案
为什么将for..in
与数组一起使用?只需按索引访问,就可以避免原型(prototype)扩展的潜在问题(请参阅hasOwnProperty
)
var i,len=commands.length;
for (i=0;i<len;i++ ) {
console.log commands[i].command
}
如果顺序无关紧要,则更加简洁
for (i=commands.length-1;i>=0;i-- ) {
}
或者
var i=commands.length;
while (i--) {
...
}
关于javascript - for(…in…)不适用于数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7190402/