Вопрос Javascript база не могу найти ошибку в коде, прошу помощи

Регистрация
28 Дек 2013
Сообщения
64
Репутация
0
Спасибо
0
Монет
0
300639240_e7daf826c5f0b0df31a851150e3b40dd_240x240.png

300639240_8d13b21967f5856192855379b297ddb8_240x240.png

Перечитал весь код, ошибку не нашел. Помогите новичку)



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



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());
 
Ну что за дебилы. Неужели так сложно поискать по вопросам ответ, который я давным-давно дал и который работает полностью правильно, да еще и оптимизирован максимально?! 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());
85284763_a9197f9ab4288f69c5271d02d31eff14_800.jpg

 
методы 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);
 
Тролль, какую уже неделю простейший объект мучаешь, третью или четвертую?
 
Вероятно причина ошибки - потеря контекста в стрелочной функции const salaryObj = {
salary: [35000, 31000, 33500,]
};

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

console.log(salaryObj.sum());
 
Назад
Сверху