Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   что вызвало в консоль переменную"totalBalance"? (https://javascript.ru/forum/misc/84273-chto-vyzvalo-v-konsol-peremennuyu-totalbalance.html)

blenderochik 26.07.2022 13:00

что вызвало в консоль переменную"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);


Nexus 26.07.2022 14:26

Цитата:

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

Это не так, внутри вашей переменной находится не стрелочная функция, а результат выполнения метода reduce на массиве users, в который вы передали свою стрелочную функцию.

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

   return acc;
}, 0);

ksa 26.07.2022 14:29

Цитата:

Сообщение от 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 объекта из массива...


Часовой пояс GMT +3, время: 19:49.