【发布时间】:2017-11-18 05:09:00
【问题描述】:
push 方法的返回为什么会导致
未捕获的类型错误:acc.push 不是函数
但是返回 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返回一个数组。 -
push 将数组作为一项推送,concat 将数组或带有一项的数组推送到不同的返回类型旁边。
标签: javascript concatenation push