24.08.2021, 17:48
|
|
Аспирант
|
|
Регистрация: 23.11.2013
Сообщений: 96
|
|
Почему не работает reduce
let vasya = { name: "Вася", age: 25 };
let petya = { name: "Петя", age: 30 };
let masha = { name: "Маша", age: 28 };
let users = [ vasya, petya, masha ]
let names = users.reduce((arr, user) => arr.push(user.name), [])
alert(names)
Я ожидал, что arr будет массивом имён, но при второй и последующих итерациях там undefined, а не массив
Последний раз редактировалось lgick, 24.08.2021 в 18:10.
|
|
24.08.2021, 17:57
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,129
|
|
lgick,
где return arr?!!!
|
|
24.08.2021, 17:57
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,231
|
|
Сообщение от lgick
|
Я ожидал, что arr будет массивом имён
|
Тогда логичнее так
let vasya = { name: "Вася", age: 25 };
let petya = { name: "Петя", age: 30 };
let masha = { name: "Маша", age: 28 };
let users = [ vasya, petya, masha ]
let names = users.map(el => el.name)
alert(names)
|
|
24.08.2021, 17:59
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,129
|
|
lgick,
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|
24.08.2021, 18:15
|
|
Аспирант
|
|
Регистрация: 23.11.2013
Сообщений: 96
|
|
let vasya = { name: "Вася", age: 25 };
let petya = { name: "Петя", age: 30 };
let masha = { name: "Маша", age: 28 };
let users = [ vasya, petya, masha ]
let names = users.reduce((arr, user) => {
arr.push(user.name)
return arr
}, [])
alert(names)
так работает, но я думал без "{", "}" и return тоже должно работать
|
|
24.08.2021, 18:33
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,129
|
|
Сообщение от lgick
|
думал без "{", "}"
|
можно и без {}, но возвращать arr нуно!
Оператор «запятая»
|
|
24.08.2021, 18:47
|
|
Аспирант
|
|
Регистрация: 23.11.2013
Сообщений: 96
|
|
let vasya = { name: "Вася", age: 25 };
let petya = { name: "Петя", age: 30 };
let masha = { name: "Маша", age: 28 };
let users = [ vasya, petya, masha ]
let names = users.reduce((arr, user) => (arr.push(user.name), arr), [])
alert(names)
работает.
Последний раз редактировалось lgick, 24.08.2021 в 18:50.
Причина: ввв
|
|
24.08.2021, 18:48
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,129
|
|
lgick,
/ добавьте
|
|
24.08.2021, 18:49
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,129
|
|
Сообщение от lgick
|
работает.
|
|
|
24.08.2021, 18:49
|
|
Аспирант
|
|
Регистрация: 23.11.2013
Сообщений: 96
|
|
пытаюсь, нажимаю сохранить, а он не сохраняет)
|
|
|
|