gpt4 book ai didi

javascript - 连接和推送之间的区别?

转载 作者:行者123 更新时间:2023-12-02 22:43:06 25 4
gpt4 key购买 nike

为什么会导致push方法返回

Uncaught TypeError: acc.push is not a function

但是 return concat 会产生正确的解决方案吗?

[1, 2, 3, 4].reduce(function name(acc, curr) {
if (even(curr)) {
return acc.push(curr);
}
return acc;
}, []);


function even(number) {
if (number % 2 === 0) {
return true;
}
return false;
}

[1, 2, 3, 4].reduce(function name(acc, curr) {
if (even(curr)) {
return acc.concat(curr);
}
return acc;
}, []);


function even(number) {
if (number % 2 === 0) {
return true;
}
return false;
}

最佳答案

push() 将元素添加到数组末尾并返回数组的新长度。因此您的返回无效。

concat() 方法用于合并数组。 Concat 不会更改现有数组,而是返回一个新数组。

如果你想要一个像这样的新数组,最好进行过滤:

var arr = [1, 2, 3, 4];
var filtered = arr.filter(function(element, index, array) {
return (index % 2 === 0);
});

请注意,假设数组 arr 完整且没有间隙 - 所有索引值都是偶数。如果您需要每个人,请使用 element 而不是 index

var arr = [1, 2, 3, 4];
var filtered = arr.filter(function(element, index, array) {
return (element% 2 === 0);
});

关于javascript - 连接和推送之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44572026/

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