为啥 array[array.length] 返回未定义? [复制]
Posted
技术标签:
【中文标题】为啥 array[array.length] 返回未定义? [复制]【英文标题】:Why array[array.length] returns undefined? [duplicate]为什么 array[array.length] 返回未定义? [复制] 【发布时间】:2018-10-15 06:57:36 【问题描述】:我正在尝试访问数组的最后一个值,但不明白为什么这不起作用。
const arr = [2 , 3, 6, 8];
const end = arr[ arr.length ];
console.log(end);
但是当我尝试控制台记录它返回的值时,它返回 4,这是我在以前的代码中寻找的:
console.log(arr.length);
【问题讨论】:
数组是零索引的,所以如果你想要最后一个元素,索引是 0, 1, 2, 3arr[arr.length -1]
数组索引为零,因此您可能想考虑一下这对 arr.length 意味着什么..
最后一个元素数组位于索引length -1
【参考方案1】:
数组是从零开始的索引。这意味着数组的第一个元素由 0 的下标索引,最后一个元素将是 length - 1
const arr = [2 , 3, 6, 8];
const end = arr[ arr.length - 1 ];
console.log(end);
【讨论】:
【参考方案2】:数组是从 0 开始索引的。可以使用arr[arr.length - 1]
访问数组的最后一项。在您的示例中,您尝试访问不存在的索引处的元素。
【讨论】:
【参考方案3】:Array
索引始终从 0 开始,Array length
等于数组中元素的计数
value => [2,3,6,8]
indexes => [0,1,2,3]
这就是为什么arr[4]
出现undefined
,因为索引 4 处没有值。
const arr = [2 , 3, 6, 8];
const end = arr[ arr.length-1 ];
console.log(end);
【讨论】:
【参考方案4】:javascript 数组索引从 0 开始计数。所以...
arr[0]
计算结果为 2
arr[1]
计算结果为 3
arr[2]
计算结果为 6
arr[3]
计算结果为 8
arr.length
的计算结果为 4
,因为您的数组中有 4 个元素
arr[4]
指的是数组中的第 5 个元素,在您的示例中为 undefined
【讨论】:
以上是关于为啥 array[array.length] 返回未定义? [复制]的主要内容,如果未能解决你的问题,请参考以下文章