Я просто удостоверяюсь, что знаю, как работает эта функция. Я читал материал и смотрел видео о функции сокращения, наверное, 3 часа прошлой ночью, я не понял. Я отошел от компьютера, приготовил еду, посмотрел телешоу, снова посмотрел на компьютер и БАМ! Я понял. Теперь я знаю, как работает функция сокращения.
Я просто не знаю, почему первый пример ниже работает, а второй нет.
источник: Eloquent Javascript Ch. 5 §Сведение
Это работает:
var arrays = [[1, 2, 3], [4, 5], [6]];
var flattened = arrays.reduce(function(a, b) {
return a.concat(b);
});
flattened; //=>[1, 2, 3, 4, 5, 6]
Я пытался возиться с кодом, чтобы изменить переменную на функцию. И как-то я его сломал. Это ниже возвращает undefined
, и я не уверен, почему.
Это не работает:
var arrays = [[1, 2, 3], [4, 5], [6]];
function flattened(arr){
arr.reduce(function(a, b) {
return a.concat(b);
});
}
flattened(arrays); //=> undefined
Почему первая функция работает, а вторая нет? Я уверен, что это что-то маленькое, что мне не хватает.