2012-08-14 42 views
-1
k = [['a'], ['ab'], ['abc']]; 
alert(k[2].length); 

上面的代码片段返回1的Javascript,获取字符串长度数组中举行

我怎样才能得到字符串,3的长度在这种情况下?

+2

你有一个数组的数组...真的是你想要的?你为什么不做'console.log(k [2])'看看'k [2]'是什么? – 2012-08-14 21:58:48

+0

也许阅读[Javascript Array Tutorial](http://www.hunlock.com/blogs/Mastering_Javascript_Arrays)将会有所帮助。 – BryanH 2012-08-15 05:43:20

回答

5

该对象不是预期的。试想一下:

k = [['a'], ['ab'], ['abc']]; 
a = k[2] // -> ['abc'] 
a.length // -> 1 (length of array) 
b = k[2][0] // -> 'abc' 
b.length // -> 3 (length of string) 
+0

是的。你的数组似乎有点不合适,但如果你无法控制它,@ pst的答案是正确的。或者您可能希望先将其平坦化,以便您的代码正常工作。 – index 2012-08-14 22:11:34

1

在你的榜样,k不包含字符串正常的阵列。它包含包含字符串的子数组。你应该声明k这样:

k = ['a', 'ab', 'abc']; 

如果你想使用自己的声明,你可以这样做:

alert(k[2][0].length);​