几乎。您创建数组的方式很好,但是您对for ... in循环的理解略有缺陷。在数组的情况下将是索引candidate
。key
所以candidate[0]
行不通。这就像说0[0]
,你实际上需要使用candidates[candidate][0]
. 这是您的 JSFiddle 更新以显示该工作,但还有其他原因不在for ... in
数组上使用循环。遍历数组时,您应该使用常规for循环:
for(var i = 0; i < candidates.length; i++){
var first_name = candidates[i][0];
}
或者在现代浏览器中使用Array.forEach (或使用SHIM):
candidates.forEach(function(candidate){
var first_name = candidate[0];
});
为每个候选人使用一个对象也可能是值得的。这应该使事情更具可读性:
var candidates = [];
candidates.push({first_name: "Rand", last_name: "Paul"});
candidates.push({first_name: "Hillary", last_name: "Clinton"});
然后你可以[0]
用.first_name
;替换 这更具可读性。
你最终会得到非常易读、可工作的代码。