@Adil1603

Почему при переборе массива и суммировании значении разными циклами, ответ отличается?

Здравствуйте. У меня задача такая: возводить в куб значения из массива и суммировать их

const numbers = [10, 4, 100, -5, 54, 2];
let sum = 0
for(let i=0;i<=numbers.length-1;i++){
    let kub = Number(numbers[i])**3
    sum = sum + kub
    
}console.log(sum) // получается 1158411



let sumof = 0
for(const name of numbers){
kubof=name**3
sumof = sumof+kubof
console.log(kubof)
}
console.log(sumof)// получается 1158411


let sumech=0;
numbers.forEach((name,index,array)=>{
    kubof=name**3
sumech = sumof+kubof
console.log(kubof) 
})
console.log(sumech) // получается 1158419


Итоговая сумма возведенных в куб элементов массива numbers, если делать:
for - получается 1158411
for of получается 1158411
forEach - // получается 1158419

почему разные значения? хотя когда я вывожу в консоль значения каждого элемента в кубе, то цифры все
идентичные во всех 3 способах перебора
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
numbers.forEach((name,index,array)=>{
    kubof=name**3
    sumech = sumof+kubof // <----- используется переменная из предыдущего цикла
    console.log(kubof) 
})
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Pro_Code
const arr = [10, 4, 100, -5, 54, 2];
let result = arr.reduce((accum, currEl) => {
    return accum + currEl**3;
}, 0);
console.log(result); //1158411
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы