javascript中的数组数组

javascript中的数组数组,javascript,Javascript,以下内容在javascript中是否正确: var candidates = []; candidates.push(["Rand","Paul"]); candidates.push(["Hillary","Clinton"]); 其中a中的每个元素本身就是两个字符串的数组 我将在for循环中按下a 此外,我还可以按如下方式迭代数组: for(var candidate in candidates) { var first_name = candidate[0]; }

以下内容在javascript中是否正确:

  var candidates = [];
  candidates.push(["Rand","Paul"]);
  candidates.push(["Hillary","Clinton"]);
其中
a
中的每个元素本身就是两个字符串的数组

我将在for循环中按下
a

此外,我还可以按如下方式迭代数组:

for(var candidate in candidates)
{
    var first_name = candidate[0];
}

您不应将用于与阵列一起使用如果扩展了阵列原型,您将以键的形式运行所有新函数

你应该做:

var i, first_name;
for( i = 0; i < candidates.length; i++ )
{
    first_name = candidates[i][0];
}
var i,名字;
对于(i=0;i<0.length;i++)
{
first_name=候选人[i][0];
}

差不多了。创建数组的方法很好,但对循环的理解有点缺陷
candidate
将是
,对于数组,该键将是索引。因此,
候选者[0]
将不起作用。这就像说
0[0]
,实际上您需要使用
candidates[candidate][0]
。这里是为了说明如何工作,但是还有其他原因不使用
来。。。在
数组上循环。迭代数组时,应使用常规循环:

为每个候选对象使用一个对象也可能是值得的。这将使事情更具可读性:

var candidates = [];
candidates.push({first_name: "Rand", last_name: "Paul"});
candidates.push({first_name: "Hillary", last_name: "Clinton"});
然后您可以将
[0]
替换为
.first_name
;这更容易理解


您将得到。

这允许您迭代数组索引,而不是其

for(var candidate in candidates)
{
    var first_name = candidate[0];
}
您要做的是:

for(var candidateKey in candidates)
{
    var candidate = candidates[candidateKey];
    var first_name = candidate[0];
}

你为什么不跑去试试呢?
for(var candidate in candidates)
{
    var first_name = candidate[0];
}
for(var candidateKey in candidates)
{
    var candidate = candidates[candidateKey];
    var first_name = candidate[0];
}