为了账号安全,请及时绑定邮箱和手机立即绑定

JS如何实现在含对象的Array中找含特定键值的对象并对该对象的其他键赋值

JS如何实现在含对象的Array中找含特定键值的对象并对该对象的其他键赋值

喵喵时光机 2019-03-20 17:19:50
如图,我想以特定id去查找所需要的对象,并能对其内容进行赋值,已知可以用underscore_.findewhere但想知道大家都是怎么实现的?js原生库怎么写0 0
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

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就是你要的对象,然后对其进行赋值操作。

说一下缺陷。

  1. 只会返回一个满足条件的对象,如果满足条件的对象不止一个,你可以用forEach的方法改写一下。

  2. 如果值是引用类型,则无法判断,需要额外的逻辑。


查看完整回答
反对 回复 2019-03-27
  • 1 回答
  • 0 关注
  • 1071 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号