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

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

如何優(yōu)雅的處理函數(shù)式調(diào)用中的undefined

如何優(yōu)雅的處理函數(shù)式調(diào)用中的undefined

繁星淼淼 2018-12-16 15:33:54
例子: 根據(jù)id獲取一個對象數(shù)組中的某個對象的屬性const stage = [         { id: 0, name: 'a' },         { id: 1, name: 'b' },         { id: 2, name: 'c' },         { id: 3, name: 'd' },         { id: 4, name: 'e' },         ]// 寫法1:// 存在的問題:如果沒有找到對象,find()就會返回undefined,導(dǎo)致獲取name屬性的時候會報錯。let name = stage.find(v => v.id ===id).name// 寫法2:// 存在的問題:重復(fù)計算let name = stage.find(v => v.id ===id) ? stage.find(v => v.id ===id).name : '';// 寫法3:// 存在的問題:需要引入額外的步驟let find = stage.find(v => v.id ===id)let name = find && find.name期望希望像寫法1那樣一行完成所有方法的調(diào)用同時能避免中間方法 返回undefined 而出錯的問題。
查看完整描述

1 回答

?
呼喚遠方

TA貢獻1856條經(jīng)驗 獲得超11個贊

用解構(gòu)賦值+默認(rèn)參數(shù)+||取值:

let {name='-'} = stage.find(v => v.id ===8)||{}

右邊的stage.find(v => v.id ===8)||{}返回找到的對象或者一個空對象
左邊let {name}解構(gòu)賦值有軟失敗的特點,如果右邊沒有找到導(dǎo)致右邊是空對象,name就是undefined
但是左邊又有默認(rèn)值,所以如果沒有找到,name的結(jié)果是-

({name='-'}=stage.find(v => v.id ===1)||{})console.log(name) // b({name='-'}=stage.find(v => v.id ===1)||{})console.log(name) // '-'


查看完整回答
反對 回復(fù) 2018-12-16
  • 1 回答
  • 0 關(guān)注
  • 383 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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