【发布时间】:2014-01-10 09:27:06
【问题描述】:
我不明白如何在 Javascript 中找到子数组的长度。下面是一个练习的例子:
var table = [
["Person", "Age", "City"],
["Sue", 22, "San Francisco"],
["Joe", 45, "Halifax"]
];
我尝试使用这些 for 循环单独打印出子数组的元素:
for(person in table) {
for(var i = 0; i < table[person].length; i++);
console.log(table[person][i]);
}
但似乎
table[person].length
虽然是无效的语法
table.length
有效且
table[person][i]
返回子索引 table_person_i 处的元素
【问题讨论】:
-
我可以向你保证
table[person].length是有效的语法。为什么要用for...in循环遍历数组?使用for循环可能会解决您的问题。 -
在遍历数组时,我更喜欢 for ... in 语法。我正在 Codecademy 上做一个练习,它拒绝了我的语法。它为每一行提供“未定义”。也许这是他们的口译员的问题?
-
table[person].length 将是有效的,如果您在名为 table 的对象中有一个名为 person 的数组。但这不是您拥有的结构 - 上述结构是对数组的一种误解,或者至少是一种奇怪的使用方式。
-
好吧,你不应该使用
for...in来表示数组是有原因的。见developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…。仅仅因为 Codecademy 不喜欢你的代码并不意味着它在语法上是无效的。 -
@JAL:您将
table[person]与table['person']混淆了。person是一个包含"0"、"1"等值的变量。所以你最终会做table["0"].length,与结构完全匹配。它获取table中第一个元素的长度。
标签: javascript arrays