有人知道只有两个键的'[1,,2]'有多一致吗?

Does anyone know how consistent `[1,,2]` only having two keys is?

本文关键字:两个      更新时间:2023-09-26

我想知道我是否可以依靠[1,,2]只有两个键:02,或者如果有人碰巧知道是否有任何JS引擎也会给我一个1

我测试过的每个浏览器都显示键0, 2,但我目前没有旧版本可用,或android手机,或…

推理:

我正在requestAnimationFrame之上编写一个自定义计时器库,因此我根据内部数组索引返回可取消的id。我试图弄清楚,如果简单的delete ary[ix]是足够的,能够在没有额外的完整性检查数组上的所有对象键。

如果您愿意假设您的代码将运行在符合ECMAScript的实现上,那么您将受到保护。来自规范:

数组元素可以省略在元素的开头、中间或结尾元素列表。当元素列表中的逗号没有出现在前面时通过AssignmentExpression(即,在开头或后面加一个逗号)另一个逗号),缺少的数组元素有助于的长度数组并增加后续元素的索引。省略数组元素没有定义。如果元素被省略在

[1,,3]将产生[1, undefined, 3]



编辑:澄清一下,即使值存在,也不会返回一个键。

Object.keys([1,,3])返回["0", "2"]


Edit 2:关于检查数组键是否存在的一个很好的答案。
检查一个键是否存在于一个JavaScript对象?