我想对 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
,将其字符串化,用 a 连接每个元素<br>
并将列表写入分数列。数字列表保存为对象。我的目标是在任何给定时间对对象中的所有数字求和。
该脚本位于一个传递一堆参数的函数内部,这就是为什么有些变量在这里看起来未定义的原因。
任何帮助将不胜感激!谢谢
UPDATE:
var nicTotalScore = nicScoreList.reduce(function(score, total) {
return total + score;
}, 0);
console.log(nicTotalScore); //12120
console.log(nicScoreList); //["12", "12"]
更新:
如果提交时分数字段留空,则会出现空字符串“ ”而不是分数。当reduce方法遍历数组时,这被注册为0。这不会影响总分,但是,举例来说,我想找到平均分,但它却失败了。有什么想法吗?谢谢
If you push()
to scorelist
,我很想说这可能是Array
.
你可以使用reduce()
.
var total = scorelist.reduce(function(total, score) {
return total + +score;
}, 0);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)