js Array.prototype.reduce() что значит =>?

Нужно из двумерного массива [1, 2, [3, 4]] сделать одномерный var arr1 = [1, 2,3, 4];

arr1.reduce((acc, val) => acc.concat(val), []);// [1, 2, 3, 4]

Так все работает . А так

arr1.reduce(function (acc, val) { acc.concat(val);}, []);

Uncaught TypeError: Cannot read property 'concat' of undefined Почему во втором случае acc = undefined ?


Ответы (1 шт):

Автор решения: Roman

Если есть тело функции { }, то чтобы вернуть что-то из нее нужно писать return.

В случае с arrow function можно опустить return, если тело функции отсутсвует.

Тоесть функция вернет то что написано после =>.

() => true тоже самое что function () { return true })

const arr1 =  [1, 2, [3, 4]] 
const result = arr1.reduce(function (acc, val) { return acc.concat(val);}, []);
console.log(result)

→ Ссылка