Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.08.2021, 17:48
Аватар для lgick
Аспирант
Отправить личное сообщение для lgick Посмотреть профиль Найти все сообщения от lgick
 
Регистрация: 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.
Ответить с цитированием
  #2 (permalink)  
Старый 24.08.2021, 17:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

lgick,
где return arr?!!!
Ответить с цитированием
  #3 (permalink)  
Старый 24.08.2021, 17:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,200

Сообщение от 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)
Ответить с цитированием
  #4 (permalink)  
Старый 24.08.2021, 17:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

lgick,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #5 (permalink)  
Старый 24.08.2021, 18:15
Аватар для lgick
Аспирант
Отправить личное сообщение для lgick Посмотреть профиль Найти все сообщения от lgick
 
Регистрация: 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 тоже должно работать
Ответить с цитированием
  #6 (permalink)  
Старый 24.08.2021, 18:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Сообщение от lgick
думал без "{", "}"
можно и без {}, но возвращать arr нуно!
Оператор «запятая»
Ответить с цитированием
  #7 (permalink)  
Старый 24.08.2021, 18:47
Аватар для lgick
Аспирант
Отправить личное сообщение для lgick Посмотреть профиль Найти все сообщения от lgick
 
Регистрация: 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. Причина: ввв
Ответить с цитированием
  #8 (permalink)  
Старый 24.08.2021, 18:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

lgick,
/ добавьте
Ответить с цитированием
  #9 (permalink)  
Старый 24.08.2021, 18:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Сообщение от lgick
работает.
Ответить с цитированием
  #10 (permalink)  
Старый 24.08.2021, 18:49
Аватар для lgick
Аспирант
Отправить личное сообщение для lgick Посмотреть профиль Найти все сообщения от lgick
 
Регистрация: 23.11.2013
Сообщений: 96

пытаюсь, нажимаю сохранить, а он не сохраняет)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает делегирование? seotapki Events/DOM/Window 6 17.02.2019 09:46
Почему перебор элементов не работает по кругу Sinevik Общие вопросы Javascript 4 27.12.2017 01:41
Почему Jquery не работает в arcticmodal при вызове окна с большой высотой? sergey24 Общие вопросы Javascript 5 21.09.2017 15:49
Почему не работает? Rora Общие вопросы Javascript 7 10.05.2017 10:09
Почему это работает? (инклуд JS в JS) Василий Б. Общие вопросы Javascript 4 11.06.2010 12:41