gpt4 book ai didi

javascript - 为什么 Array.prototype.filter 会移除空元素而不考虑回调?

转载 作者:行者123 更新时间:2023-11-29 10:02:12 25 4
gpt4 key购买 nike

我有一个数组,里面有一些空元素,我在那个数组上调用 .filter,回调总是返回 true。

[1, 2, , 5].filter(() => true);

上述代码的结果是 [1, 2, 5] - 空元素不再存在。这不是我所期望的,因为回调返回 true。

为了比较,Array.prototype.map 确实对空项执行回调:

[1, 2, , 5].map(x => x); // returns [1, 2, , 5]

最佳答案

map 中,不会为每个元素调用回调(正如您可以通过将回调中的值记录到 map 中看到的那样),但保留键,留下结果中的空槽。过滤器不保留 key (因为过滤通常会移动 key ),因此这些 key 会丢失。不过,这两个操作实际上都没有在空槽上运行回调。

关于javascript - 为什么 Array.prototype.filter 会移除空元素而不考虑回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53782264/

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