gpt4 book ai didi

javascript - 为什么拼接不填充 javascript 数组上的孔?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:34:31 26 4
gpt4 key购买 nike

假设您运行这段代码:

var a = [];
a[4] = true;

然后你的数组看起来像[undefined, undefined, undefined, undefined, true]

但是如果你运行这段代码:

var a = [];
a.splice(4, 0, true);

你会得到 [true] 而不是 [undefined, undefined, undefined, undefined, true]

使用拼接时,如果索引超过数组的当前长度,它只会停在最后一个元素处。

为什么这是 splice 的预期行为?

最佳答案

根据 ECMA 文档,'start' 参数不能大于数组的长度,或者它被设置为数组的长度。

5 - Let relativeStart be ToInteger(start).

6 - If relativeStart is negative, let actualStart be max((len + relativeStart),0); else let actualStart be min(relativeStart, len).

http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.12

至于具体原因:我不确定,也许他们认为如果该方法向数组中添加项是违反直觉的。

关于javascript - 为什么拼接不填充 javascript 数组上的孔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17436998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com