【发布时间】:2019-06-01 15:18:59
【问题描述】:
在 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 社区对这种表示法很感兴趣)。
我错过了什么?
【问题讨论】:
-
向后兼容性很重要。
-
因为他们没有选择让 JavaScript 那样工作?
-
@Herohtar 这正是我的问题——他们为什么这样做
-
不这样做更有意义。 Python 规定负整数键与其他正整数索引相关。我认为这种抽象提供清晰的假设是幼稚的。
标签: javascript python arrays indexing