在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社区都对此表示欢迎)。
我错过了什么吗?
.at()
方法,这个问题有了一个官方的简单解决方案。请查看我的回答。也许你想把它接受为最佳答案。 - Mir-Ismaili