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

Помогите найти недостатки у кода

Аня Кондратенкова Ученик (131), на голосовании 1 год назад
Напишите, какие недостатки у следующего кода, и исправьте их:

function sum(arr) {
let res = 0;

for (let elem of arr) {
res += elem;
}

return res / arr.length;
}
Голосование за лучший ответ
Pentagon Мыслитель (9660) 1 год назад
Судя по названию функции, она должна вовзращать сумму элементов массива, но в конце почему-то делит сумму на количество элементов. Я бы убрал деление.

 return res; //вместо return res / arr.length 
Celtic Hammer Мудрец (16454) 1 год назад
Главный недостаток в том что это старая школа и явно взято из учебников 15-летней давности.
Современный Javascript сильно отличается от этого примера, сейчас для нахождения среднего арифметическое массива напишут скорее вот так
 let arr = new Array(1,2,3,4) 
const mean = x => (x.reduce((acc, i) => acc + parseInt(i), 0)) / x.length
alert(mean(arr))
ПавелПросветленный (25618) 1 год назад
Из какого века вы достали new Array() когда весь мир использует скобки "[]"? Говорите про современность а пишите как мамонт. Метод reduce появился в 2009. Цикл for..of в 2015. Если кто-то и берёт знания из 15-ти летнего учебника, то это вы.
"Нововведенные" методы не делаю код более читаемым или производительным а в вашем случае лишь делает и того короткий код ещё более коротким. В первом примере хотя бы сразу понятна цель написанного.
Рукажоп, тоже заметил) - "Это старая школа, учебники 15 летней давности" - new Array(...) man....
Dlazder Мудрец (16875) 1 год назад
Если не говорить о методах всяких новых как в ответе выше, то код норм, рабочий, логических недостатков нет.
ПавелПросветленный (25618) 1 год назад
Они не новые. Старше чем for..of цикл.
ПавелПросветленный (25618) 1 год назад
И там есть ошибка то ли в названии функции, то ли в решении. Функция называется "sum" а высчитывает она среднее значение.
Dlazder Мудрец (16875) Рукажоп, Я цикл for of не воспринимаю как новый), ну просто обертка синтаксическая, а суть та же остается что у обычных циклов, если бы там был for in или for я бы не заметил никакой разницы, ибо ничего сверхнового они не превносят. Ну название да, неверное.
Похожие вопросы