喵喵時(shí)光機(jī)
2019-03-20 17:19:50
如圖,我想以特定id去查找所需要的對(duì)象,并能對(duì)其內(nèi)容進(jìn)行賦值,已知可以用underscore_.findewhere但想知道大家都是怎么實(shí)現(xiàn)的?js原生庫(kù)怎么寫0 0
1 回答

繁星coding
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
function findWhere(list, properties) {
const propertiesArray = Object.entries(properties)
return list.find(item => {
return propertiesArray.every(pair => {
const key = pair[0]
const value = pair[1]
return item[key] && item[key] === value
})
})
}
const result = findWhere(shoppinglists, {id: 'clothes', title: 'Clothes'}) // result就是你要的對(duì)象,然后對(duì)其進(jìn)行賦值操作。
說(shuō)一下缺陷。
只會(huì)返回一個(gè)滿足條件的對(duì)象,如果滿足條件的對(duì)象不止一個(gè),你可以用forEach的方法改寫一下。
如果值是引用類型,則無(wú)法判斷,需要額外的邏輯。
添加回答
舉報(bào)
0/150
提交
取消