Answer
t.me/js_testОтвет:
Необходимо добавить в функцию, переданную в метод reduce, возврат переменной gdps.
Пример исправленного кода:
const towns = {
town1: {
population: 12000,
balance: 180000,
},
town2: {
population: 600,
balance: 42000,
},
};
const GDPs = Object.entries(towns)
.reduce((gdps, [key, value]) => {
const { population, balance } = value;
gdps[key] = balance / population;
return gdps;
},{})
console.log(GDPs)
Объяснение:
Метод reduce передает результат выполнения функции внутри него снова в эту же функцию для следующего элемента массива. Поэтому когда reduce начнет выполнять функцию для town2 переменная gdps будет равна undefined, что приведет к ошибке.
Код для проверки:
const towns = {
town1: {
population: 12000,
balance: 180000,
},
town2: {
population: 600,
balance: 42000,
},
};
const GDPs = Object.entries(towns)
.reduce((gdps, [key, value]) => {
const { population, balance } = value;
gdps[key] = balance / population;
},{})
console.log(GDPs)