在JavaScript中对存储在数组中的数字求和
我想对存储在JavaScript对象中的数字列表求和。使用以下代码创建和更新对象:在JavaScript中对存储在数组中的数字求和,javascript,json,object,sum,Javascript,Json,Object,Sum,我想对存储在JavaScript对象中的数字列表求和。使用以下代码创建和更新对象: var myscore = $('input[name="Points1"]').val(); scorelist = JSON.parse(localStorage.getItem(playerName + 'scorelist') || '[]'); scorelist.push(myscore); localStorage.setItem(playerName + 'scor
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>");
更新:
如果提交时分数字段留空,则将显示空字符串“”,而不是分数。当reduce方法遍历数组时,这将注册为0。这不会影响总成绩,但比如说,我想找到平均分,它会把它抛在脑后。有什么想法吗?谢谢如果你推送()
到记分表
,我想说它可能是一个数组
您可以使用reduce()
reduce函数非常优雅。我不确定我是否真正理解reduce函数。你介意再解释一下吗?@NicMeiring MDN很好。谢谢。现在就去拿。答案仍然是连接而不是求和。请参阅更新。@NicMeiring您必须将分数存储为字符串。我会更新我的答案。
var nicTotalScore = nicScoreList.reduce(function(score, total) {
return total + score;
}, 0);
console.log(nicTotalScore); //12120
console.log(nicScoreList); //["12", "12"]
var total = scorelist.reduce(function(total, score) {
return total + +score;
}, 0);