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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

大佬們遇到過這個(gè)問題嗎?如何理解map中的三目運(yùn)算表達(dá)式

大佬們遇到過這個(gè)問題嗎?如何理解map中的三目運(yùn)算表達(dá)式

梵蒂岡之花 2019-10-31 10:31:31
我的代碼:constcountBy=(arr,fn)=>arr.map(val=>(typeoffn==='function'?fn(val):val[fn]))高手的代碼:constcountBy=(arr,fn)=>arr.map(typeoffn==='function'?fn:val=>val[fn])測(cè)試代碼:console.log(countBy([1,2,3,4,5,6],a=>a%3))console.log(countBy([6.8,4.2,6.1],Math.floor))console.log(countBy(['one','two','three'],'length'))發(fā)現(xiàn)居然是等效的!那高手的typeoffn==='function'?fn:val=>val[fn]這句怎么理解?如果fn是函數(shù),val[fn]有意義嗎?箭頭函數(shù)前面不傳入val,箭頭后面居然也能用val!
查看完整描述

2 回答

?
蕭十郎

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊

他這是把你里面的判斷給提到外面來了map接收一個(gè)函數(shù)用三目先判斷fn的類型是函數(shù)就可以直接用,參數(shù)是默認(rèn)傳入的不是函數(shù)就包裹一層
                            
查看完整回答
反對(duì) 回復(fù) 2019-10-31
?
Cats萌萌

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊

不要把簡(jiǎn)單的問題想成復(fù)雜化。
map接受一個(gè)函數(shù),你傳具名函數(shù)也好,或者平時(shí)習(xí)慣性寫的匿名箭頭函數(shù)也好;本質(zhì)上就是在循環(huán)中給每個(gè)可迭代元素進(jìn)行函數(shù)調(diào)用,傳入三個(gè)參數(shù)。
我覺得你把每個(gè)過程都保存到一個(gè)變量中就很好理解了,就像代碼簡(jiǎn)潔是一個(gè)優(yōu)點(diǎn),但過度簡(jiǎn)潔反而會(huì)破壞代碼可讀性。
constcountBy=(arr,fn)=>{
//如果fn是一個(gè)函數(shù),那就使用這個(gè)函數(shù)。
//不是的話設(shè)置一個(gè)默認(rèn)函數(shù),就認(rèn)為數(shù)組是一個(gè)對(duì)象數(shù)組,fn也就是對(duì)象的key
//返回對(duì)象數(shù)組中的指定key值
constcallback=typeoffn==='function'?fn:val=>val[fn]
returnarr.map(callback);
}
                            
查看完整回答
反對(duì) 回復(fù) 2019-10-31
  • 2 回答
  • 0 關(guān)注
  • 441 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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