Проблема в том, что sum
определено вне области вашей функции, поэтому то, что вы на самом деле делаете, это var sum = undefined + numbers[i]
(то есть NaN
).
Даже тогда лучшеиспользовать функции reduce
или стрелки (если вы можете использовать ES6).
Использование reduce()
:
var numbers = [45, 34, 12, 10, 8, 9],
sum = numbers.reduce(function(a, b) { return a + b; }, 0);
document.getElementById('output').innerHTML = sum;
<div id="output"></div>
Использование функций стрелок :
var numbers = [45, 34, 12, 10, 8, 9],
sum = numbers.reduce((a, b) => a + b, 0);
document.getElementById('output').innerHTML = sum;
<div id="output"></div>