furry.cat

https://www.cat-in-web.ru/
Зарегистрирован с 18.08.2019
Публикации Комментарии
21 апреля 2020
const friends = [
 { passport: '03005988', name: 'Joseph Francis Tribbiani Jr', age: 32, sex: 'm' },
 { passport: '03005989', name: 'Chandler Muriel Bing', age: 33, sex: 'm' },
 { passport: '03005990', name: 'Ross Eustace Geller', age: 33, sex: 'm' },
 { passport: '03005991', name: 'Rachel Karen Green', age: 31, sex: 'f' },
 { passport: '03005992', name: 'Monica Geller', age: 31, sex: 'f' },
 { passport: '03005993', name: 'Phoebe Buffay', age: 34, sex: 'f' },
]
const oldestFriend = friends.reduce((oldest, current) => {
  if (current.age > oldest.age) return current;
  return oldest;
})

Если мы не передаем методу reduce начальное значение, то он устанавливает в него первый элемент из массива и уже не вызывает для него коллбэк. Таким образом, когда коллбэк будет вызван первый раз, в качестве накопленного значения (oldest) он получит Джо, а в качестве текущего (current) Чендлера. Для следующего вызова коллбэка текущим будет уже Росс. А вот накопленным будет то, что вернет первый коллбэк. То есть oldest, который получит следующий коллбэк целиком зависит от предыдущего. А конечным результатом работы всего метода reduce будет то, что вернет самый последний колбэк. Иными словами, мы просто каждый раз возращаем из коллбэка самого старшего из двух друзей.

1) oldest = Джо, current = Чендлер, возвращаем Чендлера 2) oldest = Чендлер, current = Росс, возвращаем Чендлера 3) oldest = Чендлер, current = Рейчел, возвращаем Чендлера 4) oldest = Чендлер, current = Моника, возвращаем Чендлера 5) oldest = Чендлер, current = Фиби, возвращаем Фиби

Ответить
14 января 2020

Спасибо за внимательность! Команда в тексте статьи исправлена:

Установка пакета create-react-app: npm i create-react-app (укороченная версия npm install create-react-app)

Разворачивание нового проекта: npx create-react-app my-app или npm init react-app my-app

Ответить
BUG