亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript - 數組中的分數總和

Javascript - 數組中的分數總和

喵喵時光機 2023-02-24 17:39:30
我對 javascript 比較陌生,并試圖對以下數組中的所有分數求和:[  { tile: "N", score: 1 },  { tile: "K", score: 5 },  { tile: "Z", score: 10 },  { tile: "X", score: 8 },  { tile: "D", score: 2 },  { tile: "A", score: 1 },  { tile: "E", score: 1 }]我試過使用這個功能:function maximumScore(tileHand) {        return tileHand.reduce((p,c) => p.score + c.score, 0);    }但我得到的結果不是NaN28。但是,當我用 替換p.score我的函數時p,我得到了 28 的預期結果。為什么會這樣?
查看完整描述

4 回答

?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

reduce 的第一個參數是累加器。因此,將值添加到其中。所以它基本上是一個變量。

function maximumScore(tileHand) { 
   return tileHand.reduce((p,c) => p + c.score, 0);
}

這將繼續向 p 添加分數,從 0 開始

另見mozilla.org


查看完整回答
反對 回復 2023-02-24
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

原因是.reduce()您使用的方法的回調最多需要 4 個參數,第一個是accumulator。這意味著它保存了回調返回的所有先前結果的累加值。在這種情況下,它是一個數字,而不是一個對象。因此,在每次迭代中,您在參數下都有當前總和p,而不是對象。

從文檔:

accumulator

累加器累加回調的返回值。它是先前在回調的最后一次調用中返回的累積值——或者initialValue,如果它被提供(見下文)。


查看完整回答
反對 回復 2023-02-24
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

// get sum of score prop across all objects in array i.e. tileHand

var scoreTotal = tileHand.reduce(function(prev, cur) {

  return prev + cur. score;

}, 0);


console.log('Total Score:', scoreTotal);

參考:https://gist.github.com/benwells/0111163b3cccfad0804d994c70de7aa1


查看完整回答
反對 回復 2023-02-24
?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

p 代表前一個(或累加器/總和),c 代表當前。您正在將以前的分數與當前分數相加。然后告訴 reduce 函數從 0 開始

所以它試圖求和 0.score + c.score 這將給出 NaN。

只需做 p + c.score

所以循環將是

0 + 1 = 1

1 + 5 = 6

6 + 10 = 16

ETC


查看完整回答
反對 回復 2023-02-24
  • 4 回答
  • 0 關注
  • 208 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號