第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

減少方法不清楚

減少方法不清楚

GCT1015 2022-12-02 16:02:57
因此,我開始使用 reduce() 并意識到我可以將對象作為該方法的第一個元素傳遞,我看到了幾個示例,這就是其中之一。const arr = ['y', 'n', 'y', 'y', 'n'];let test = arr2.reduce((sum, val) => {    sum[val] = (sum[val] || 0) + 1;    console.log('sum of val', sum[val], 'value', val)    return sum;}, {})我添加了那個控制臺日志,這樣我就可以看到發(fā)生了什么,但我無法弄清楚。方法是如何知道的?它如何在對象中添加 val(即 n 或 y),然后添加數(shù)組中存在的相同元素數(shù)量的總和。例如,該總和如何變?yōu)?{y: 20} - 假設(shè)數(shù)組中有 20 個 y。我對此感到困惑,起初它看起來很簡單,但我想它不是。
查看完整描述

2 回答

?
胡說叔叔

TA貢獻(xiàn)1804條經(jīng)驗 獲得超8個贊

它不“知道”,你在這里sum[val] = (sum[val] || 0) + 1;

sum是第一次迭代中的空對象,然后它是從上一次迭代返回的對象(由于 是相同的return sum;)。Andval是當(dāng)前值('y''n')。

因此,在第一次迭代中,sumwill be{}valwill be 'y'。然后這條線將設(shè)置sum['y'] = 1,因為它本質(zhì)上是這樣的sum['y'] = (sum['y'] || 0) + 1- 并且在那個點(diǎn)上,所以你會知道哪個是哪個。sum['y']undefined(undefined || 0) + 10 + 11

下一次發(fā)生同樣的情況'n'。

第三次,sum['y']已經(jīng)1是以前的了,所以表達(dá)式變成(1 || 0) + 1which is 1 + 1which is 2,所以你得到sum['y'] = 2。

等等。

從調(diào)試器中查看此截屏視頻:https ://recordit.co/FVkXjW1b5y


查看完整回答
反對 回復(fù) 2022-12-02
?
繁華開滿天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗 獲得超4個贊

.reduce()有兩個參數(shù)

  • 回調(diào)函數(shù)

  • 初始值(可選)

在您的情況下,空對象文字{}是初始值。如果提供了初始值,它將作為第一個參數(shù)傳遞給回調(diào)函數(shù)。

的回調(diào)函數(shù)的第二個參數(shù)是調(diào)用.reduce()數(shù)組的當(dāng)前元素.reduce()。在第一次迭代中,valarr數(shù)組中的第一個元素,即'y'

sum[val] = (sum[val] || 0) + 1;

在每次迭代中,上面的語句將添加值val作為sum對象中的鍵(初始值),其值是0 + 1ifsum[val]未定義或sum[val] + 1ifsum[val]已定義。

你的代碼是如何執(zhí)行的:

第一次調(diào)用 callback 時,sumis{}valis 'y'。因為sum[val]orsum['y']undefined,'y'被添加為 keysum并且它的值為 1。當(dāng)回調(diào)函數(shù)被第二次調(diào)用時同樣的事情發(fā)生。2個電話后,sum看起來像{ y: 1, n: 1 }。

在第三次調(diào)用中,因為sum[val]等于1,所以之前添加的鍵y被覆蓋,sum[val] + 1其計算結(jié)果為1 + 1。所以在第三次通話后,sum看起來像{ y: 2, n: 1 }。在隨后的回調(diào)函數(shù)調(diào)用中也會發(fā)生同樣的事情。


查看完整回答
反對 回復(fù) 2022-12-02
  • 2 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號