鍍金池/ 問(wèn)答/HTML/ JS如何實(shí)現(xiàn)在含對(duì)象的Array中找含特定鍵值的對(duì)象并對(duì)該對(duì)象的其他鍵賦值

JS如何實(shí)現(xiàn)在含對(duì)象的Array中找含特定鍵值的對(duì)象并對(duì)該對(duì)象的其他鍵賦值

clipboard.png
如圖,我想以特定id去查找所需要的對(duì)象,并能對(duì)其內(nèi)容進(jìn)行賦值,

已知可以用underscore_.findewhere

但想知道大家都是怎么實(shí)現(xiàn)的?js原生庫(kù)怎么寫(xiě)0 0

回答
編輯回答
陪我終
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ō)一下缺陷。

  1. 只會(huì)返回一個(gè)滿足條件的對(duì)象,如果滿足條件的對(duì)象不止一個(gè),你可以用forEach的方法改寫(xiě)一下。
  2. 如果值是引用類型,則無(wú)法判斷,需要額外的邏輯。
2017年10月22日 01:33