JavaScriptオブジェクトに格納されている数値のリストを合計します。オブジェクトは、このコードを使用して作成され、更新された: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。数値のリストはオブジェクトとして保存されます。私の目標は、任意の時点でオブジェクト内のすべての数値を合計することです。
このスクリプトは、いくつかの変数がここで定義されていないように見える理由の1つのパラメータを渡す関数の内部にあります。
ご協力いただければ幸いです!おかげ
UPDATE:
var nicTotalScore = nicScoreList.reduce(function(score, total) {
return total + score;
}, 0);
console.log(nicTotalScore); //12120
console.log(nicScoreList); //["12", "12"]
UPDATE: 提出したときに、スコアフィールドは、空の文字列 "" の代わりにスコアを空白のままになっている場合。これは、reduceメソッドが配列を通過するときに0として登録されます。これは合計に影響しませんが、たとえば、私は平均スコアを見つけたかったとします。それはそれを捨てます。そこに任意のアイデア?ありがとう
非常にエレガントなリダクション機能。 – Triztian
私はreduce関数を本当に理解しているのか分かりません。もっと説明してもらえますか? –
@NicMeiring MDNには良い[documentation](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Array/Reduce)があります。ありがとう。 – alex