Объект с функциями. Решение задачи
Помогите решить поставленную задачу. Вот условие: Сделайте объект с тремя функциями, каждая из которых будет принимать параметром массив с числами. Сделайте так, чтобы первая функция возвращала сумму элементов массива, вторая функция - сумму квадратов, а третья - сумму кубов. Но я что-то делаю не так, не пойму что.
Моё решение:
let math = {
sum: function(arr) {
return sum += elem
},
square: function(arr) {
return elem * elem
},
cube: function(arr) {
return elem * elem * elem
},
};
let arr = [1, 2, 3, 4, 5];
for (let elem of arr) {
arr[elem];
}
alert(math.sum([1, 2, 3, 4, 5]));
alert(math.square([1, 2, 3, 4, 5]));
alert(math.cube([1, 2, 3, 4, 5]));
Ответы (1 шт):
Автор решения: Darth
→ Ссылка
Для суммирования массива хорошо подходит метод reduce. Для возведения в степень не обязательно перемножать переменную на себя кучу раз, есть оператор возведения в степень (а в древние времена, когда его не было мы пользовались Math.pow).
const math = {
sum(arr) {
return arr.reduce((sum, elem) => sum + elem, 0);
},
square(arr) {
return arr.reduce((sum, elem) => sum + elem ** 2, 0);
},
cube(arr) {
return arr.reduce((sum, elem) => sum + elem ** 3, 0);
},
};
console.log(math.sum([1, 2, 3, 4, 5]));
console.log(math.square([1, 2, 3, 4, 5]));
console.log(math.cube([1, 2, 3, 4, 5]));