Показать сообщение отдельно
  #1 (permalink)  
Старый 20.05.2018, 16:18
Аспирант
Отправить личное сообщение для VyacheslavBozere Посмотреть профиль Найти все сообщения от VyacheslavBozere
 
Регистрация: 18.03.2018
Сообщений: 31

Применение Array.reducce с оператором расширения
Всем привет!Подскажите пож-та : изучаю метод Array.prototype.reduce. На сайте https://developer.mozilla.org/ru/doc...s/Array/Reduce есть предпоследний пример склеивание массивов, содержащихся в объектах массива, с использованием оператора расширения и initialValue Собственно вопрос:
Почему нельзя было обойтись без initial value в этом примере. Попробовал сделать так "return [...prev.books, ...curr.books]" и вылетает ошибка, что prev.books не итерррруется.
// friends - список из объектов(друзей) 
// где поле "books" - список любимых книг друга 
var friends = [ 
{ name: "Anna", books: ["Bible", "Harry Potter"], age: 21 }, 
{ name: "Bob", books: ["War and peace", "Romeo and Juliet"], age: 26 },
{ name: "Alice", books: ["The Lord of the Rings", "The Shining"], age: 18 }
]

// allbooks - список, который будет содержать все книги друзей + 
// дополнительный список указанный в initialValue
var allbooks = friends.reduce(function(prev, curr) {
  return [[I]...prev[/I], ...curr.books];
}, ["Alphabet"]);

// allbooks = ["Alphabet", "Bible", "Harry Potter", "War and peace", 
// "Romeo and Juliet", "The Lord of the Rings", "The Shining"]
Ответить с цитированием