为什么我不能在JavaScript中进行array [-1]?
问题内容:
在Python中,您可以这样做:
arr = [1,2,3]
arr[-1] // evaluates to 3
但是在JS中,您不能:
let arr = [1,2,3];
arr[-1]; // evaluates to undefined
问题是: 为什么?
我知道解决它的技巧(arr[arr.length-1]
修改数组原型等),但这不是重点。
我试图理解为什么EcmaScript标准中仍然没有将负数组索引解释为从末尾开始的索引,尽管实现理解这一点的JS引擎似乎很容易(而且整个Python社区也是具有这种表示法的爆炸声)。
我想念什么?
问题答案:
您错过了要点,即数组是对象( 奇异对象 ),并且-1
是有效键。
var array = [1, 2, 3];
array[-1] = 42;
console.log(array);
console.log(array[-1]);