配列(this.players
)内のすべてのオブジェクトの数を取得しようとしていますが、object.alive == trueの場合です。これはJS.mapを使用する正しい方法ですか?
は、これまでのところ私が持っている:罪として醜い見えますが、動作しているように見えます
return this.players.map(el => el.alive).reduce(function(acc, cur) {
if(acc === true) {
if(cur === true) {
acc = 1
} else {
acc = 0
}
}
return acc + ((cur) ? 1 : 0)
})
。これを行うより堅牢な方法はありますか?
、返す '0' [ '用:
また、代わりに自分の
alive
プロパティにマッピングする選手の、ちょうど直接内のプロパティは、コールバックを減らすことへのアクセス{alive:true}、{alive:false}] 'です。 –'if(acc === true)'は意味をなさない。あなたのアキュムレータは数字であるはずです。 'reduce'に開始値として' 0'を渡してください! – Bergi
最初の反復で 'acc 'がデフォルトにtrueに設定されているとします。チェックするフィールドの型がブール値であるためです。そのため、チェックインを入れます。 – khany