我创建了一个数组,当我试图获得数组的长度时,它工作得很好。
var map = [
[3, 0, 0, 2],
[7, 6, 6, 8],
[7, 6, 6, 8],
[5, 1, 1, 4]
];
var i = map.length;i输出4。
当我尝试使用i变量来获得使用var j = map[i].length;的列时,控制台返回"map[i]是未定义的“。为什么这不起作用,但是用一个实际的数字替换i是有效的吗?
这里是一个例琴,只是取消了第11行的注释。
发布于 2016-02-27 21:02:34
正如您所说,i等于4。JS数组索引从0开始,因此数组中的最后一个元素是map[3],这意味着在map[4]没有任何元素。
您需要执行map[i-1] --这段代码应该可以工作:
var j = map[i-1].length;这是在你的小提琴手上工作的:https://jsfiddle.net/zk7f8Ls2/2/
发布于 2016-02-27 21:02:26
因为表索引是零基。表长为4,但索引为0、1、2和3。当您尝试访问索引4时,您将得到一个错误。
发布于 2016-02-27 21:06:41
这是因为i是4,如果您想看到数组的最后一项-1 map[i-1],请记住数组以0开头。
https://stackoverflow.com/questions/35675383
复制相似问题