Why does a return of the push method cause \"Uncaught TypeError: acc.push is not a function\". But a return concat results in the correct solution?
acc should not be an array. Look at the documentation. It can be one, but..
It makes no sense at all to reduce an array to an array. What you want is filter. I mean, reduce using an array as the accumulator and concating each element to it technically does work, but it is just not the right approach.
var res = [1, 2, 3, 4].filter(even);
console.log(res);
function even(number) {
return (number % 2 === 0);
}