在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]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句