Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.07.2022, 13:00
Новичок на форуме
Отправить личное сообщение для blenderochik Посмотреть профиль Найти все сообщения от blenderochik
 
Регистрация: 26.07.2022
Сообщений: 1

что вызвало в консоль переменную"totalBalance"?
Имеется простейший массив "users" состоящий из объектов(содержимое не важно абсолютно).Ниже записывается создание переменной "totalBalance", в котором находится стрелочная функция внутри этого локального пространства находится "console.log(acc,user);".На этом код заканчивается. В моём интеллектуальном мире я должен был дописать ниже //console.log(totalBalance); чтобы получить ответ от консоля, но, как оказывается, что-то неизвестное вызывает переменную "totalBalance" без моего участия. Кто-нибудь может мне логически объяснить какая буква или точка отобразила в консоль результат?в консоль выводится 0 Object
test.js:24 undefined Object
test.js:24 undefined Object
Ведь в моём понимании в консоле должно быть отображено ПУСТО (т.е. ничего не должно было отображено быть вовсе).Извиняюсь за свой вопрос, наверно я просто тупой человек.
Код:
const users = [
  {
    index: 0,
    isActive: false,
    balance: 2397.64,
    age: 39,
  },
  {
    index: 1,
    isActive: true,
    balance: 2608.48,
    age: 33,
  },
  {
    index: 2,
    isActive: true,
    balance: 1699.99,
    age: 25,
  },
];

//4)Reduce
const totalBalance = users.reduce((acc, user) => {
  console.log(acc, user);
}, 0);

Последний раз редактировалось blenderochik, 26.07.2022 в 13:06. Причина: дописал что сказал console
Ответить с цитированием
  #2 (permalink)  
Старый 26.07.2022, 14:26
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от blenderochik
Ниже записывается создание переменной "totalBalance", в котором находится стрелочная функция
Это не так, внутри вашей переменной находится не стрелочная функция, а результат выполнения метода reduce на массиве users, в который вы передали свою стрелочную функцию.

Если нужно сделать так, чтобы users.reduce отработал только после того, как вам это понадобится, то и делайте так, как написали:
const totalBalance = () => users.reduce((acc, user) => {
  console.log(acc, user);

   return acc;
}, 0);
Ответить с цитированием
  #3 (permalink)  
Старый 26.07.2022, 14:29
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от blenderochik
в консоль выводится
0 Object
test.js:24 undefined Object
test.js:24 undefined Object
Ты ведь выводишь
Сообщение от blenderochik
console.log(acc, user);
Первый раз вывелся "стартовый" 0 и
Сообщение от blenderochik
{
    index: 0,
    isActive: false,
    balance: 2397.64,
    age: 39,
  }
Поскольку твоя функция ничего не возвращает, далее выводились
undefined и остальные 2 объекта из массива...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить имя функции внутри функции не используя callee drwhite Общие вопросы Javascript 39 12.02.2020 22:48
Угадай мелодию Audaxviator Node.JS 1 22.01.2020 14:39
Мотоциклисты есть? l-liava-l Оффтопик 13 04.07.2014 13:35
Кто как учит/учил/ будет учить Английский ? DjDiablo Оффтопик 53 18.12.2012 21:01
О фрилансе (Личный опыт) free Оффтопик 105 18.08.2011 17:02