我想总结存储在JavaScript对象中的数字列表。使用以下代码创建和更新对象:
var myscore = $('input[name="Points1"]').val();
scorelist = JSON.parse(localStorage.getItem(playerName + 'scorelist') || '[]');
scorelist.push(myscore);
localStorage.setItem(playerName + 'scorelist', JSON.stringify(scorelist));
$('div.scorecolumn', column).html("Score: <br>" + scorelist.join('<br>') + "<br>");
基本上我接受当时列中的任何内容,解析它,添加myscore
,将其字符串化,用<br>
连接每个元素并将列表写入scorecolumn。数字列表保存为对象。我的目标是在任何给定时间总结对象中的所有数字。
这个脚本位于一个传递一堆参数的函数内部,这就是为什么某些变量在这里看起来未定义的原因。
任何帮助将不胜感激!感谢
更新:
var nicTotalScore = nicScoreList.reduce(function(score, total) {
return total + score;
}, 0);
console.log(nicTotalScore); //12120
console.log(nicScoreList); //["12", "12"]
更新: 如果在提交时分数字段留空,则为空字符串“”而不是分数。当reduce方法通过数组时,这将注册为0。这并不影响总数,但是比方说,例如,我想找到平均分数,它会抛弃它。有什么想法?感谢
答案 0 :(得分:3)
如果您push()
到scorelist
,我很想说它可能是Array
。
您可以使用reduce()
。
var total = scorelist.reduce(function(total, score) {
return total + +score;
}, 0);