Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

JavaScript База Не могу найти ошибку в коде, прошу помощи

- Ученик (109), на голосовании 1 год назад
Перечитал весь код, ошибку не нашел. Помогите новичку)

Исходный код:

const salaryObj = {
salary: [35000, 31000, 33500,]
};

// salaryObj.sum()
this.salary.reduce((a, b) => a + b);

// salaryObj.avg()
this.salary.reduce((a, b) => a + b) / this.salary.length;

// salaryObj.max()
Math.max(...this.salary);

// salaryObj.min()
Math.min(...this.salary);

console.log(salaryObj.sum());
console.log(salaryObj.avg());
console.log(salaryObj.max());
console.log(salaryObj.min());
Голосование за лучший ответ
Jeck Naguib Знаток (402) 1 год назад
методы salaryObj.sum(), salaryObj.avg(), salaryObj.max() и salaryObj.min() не определены. Для решения этой проблемы необходимо добавить следующий код:

salaryObj.sum = () => this.salary.reduce((a, b) => a + b);
salaryObj.avg = () => this.salary.reduce((a, b) => a + b) / this.salary.length;
salaryObj.max = () => Math.max(...this.salary);
salaryObj.min = () => Math.min(...this.salary);
-Ученик (109) 1 год назад
Чет все равно ругается, или я туплю(
франциск 1 Просветленный (24678) 1 год назад
Вероятно причина ошибки - потеря контекста в стрелочной функции
 const salaryObj = { 
salary: [35000, 31000, 33500,]
};

salaryObj.sum = function(){return this.salary.reduce((a, b) => a + b)}

console.log(salaryObj.sum());
-Ученик (109) 1 год назад
Спасибо, все заработало
Яков Гото Искусственный Интеллект (320911) 1 год назад
Ну что за дебилы. Неужели так сложно поискать по вопросам ответ, который я давным-давно дал и который работает полностью правильно, да еще и оптимизирован максимально?!
 const salaryObj = { 
workers: [
{ name : 'Федя', pay : 5000 },
{ name : 'Петя', pay : 2000 },
{ name : 'Иван', pay : 8000 },
],
out () {
return `Зарплаты работников:\n${this.workers.map(e => `${e.name} : ${e.pay} руб.`).join('\n')}`;
},
sum () {
return `Общая сумма зарплат: ${this.workers.reduce((a,b) => a += b.pay,0)} руб.`;
},
avg () {
return `Среднее ариф. зарплат: ${this.workers.reduce((a,b) => a += b.pay,0) / this.workers.length} руб.`;
},
min () {
return `Самая высокая зарплата: ${Math.max(...this.workers.map(e => e.pay))} руб.`;
},
max () {
return `Самая низкая зарплата: ${Math.min(...this.workers.map(e => e.pay))} руб.`;
},
}

console.log(salaryObj.out());
console.log(salaryObj.sum());
console.log(salaryObj.avg());
console.log(salaryObj.min());
console.log(salaryObj.max());
Петр Алексеевич Оракул (82068) 1 год назад
Тролль, какую уже неделю простейший объект мучаешь, третью или четвертую?
kossarevУченик (168) 1 год назад
Поплачь спермоглот
Похожие вопросы