Lodash 查找数组中是否存在对象属性

新手上路,请多包涵

我有一组这样的对象:

 [ {"name": "apple", "id": "apple_0"},
  {"name": "dog",   "id": "dog_1"},
  {"name": "cat", "id": "cat_2"}
]

我想插入另一个元素,也命名为 apple ,但是,因为我不想在其中重复,我如何使用 lodash 来查看数组中是否已经存在具有相同名称的对象?

原文由 reectrix 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

这对我有用(在测试了不同的解决方案之后):

   addItem(items, item) {
    let foundObject = _.find(items, function(e) {
      return e.value === item.value;
    });

    if(!foundObject) {
      items.push(item);
    }
    return items;
  }

原文由 reectrix 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以像这样使用 Lodash _.find()

 var data = [ {"name": "apple", "id": "apple_0"},
  {"name": "dog",   "id": "dog_1"},
  {"name": "cat", "id": "cat_2"}
]

if(!_.find(data, {name: 'apple'})) {
  data.push({name: 'apple2'});
}
console.log(data)
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>

参考文档: https ://lodash.com/docs/4.17.14#find

原文由 Nenad Vracar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题