Ответ Престола reduce
является хорошим решением, но я подумал, что отвечу также, чтобы дать вам немного больше понимания того, что произошло.
Проблема в том, что переменные, созданные внутри цикла each
, недоступны вне цикла. Ваш код будет выглядеть так в JavaScript:
bagItems.forEach(function(item) {
var total = total + item.realprice;
});
write("<p>" + total + "</p>");
Полагаю, вы знакомы с областью видимости переменных JS, но в основном var
, определенные внутри функции, недоступны за ее пределами.
Вторая проблема заключается в том, что вы определяете общее как равное себе + чему-то еще, но вы никогда не даете ему начальное значение, поэтому оно в конечном итоге будет иметь вид undefined + item.realprice
, равный NaN
.
Вот альтернативное решение, которое решает обе эти проблемы:
- var total = 0
each item in bagItems
- total += item.realprice
p= total