【发布时间】:2023-03-10 17:22:01
【问题描述】:
这是我在 JavaScript 中的用例:
我有两个对象数组,它们的属性匹配(id 和名称)。
var result1 = [
{id:1, name:'Sandra', type:'user', username:'sandra'},
{id:2, name:'John', type:'admin', username:'johnny2'},
{id:3, name:'Peter', type:'user', username:'pete'},
{id:4, name:'Bobby', type:'user', username:'be_bob'}
];
var result2 = [
{id:2, name:'John', email:'johnny@example.com'},
{id:4, name:'Bobby', email:'bobby@example.com'}
];
var props = ['id', 'name'];
我的目标是让另一个对象数组只包含不匹配的元素。像这样:
var result = [
{id:1, name:'Sandra'},
{id:3, name:'Peter'}
];
我知道有一种方法可以做到这一点,从 result1 将每个对象与 result2 的对象进行比较,然后比较它们的键,如果不匹配,则将值放入另一个对象中,然后将其推送到新数组中,但我想知道有没有更优雅的方式,比如使用 lo-dash 或下划线或类似的东西。
谢谢!
【问题讨论】:
-
分享您的研究对每个人都有帮助。告诉我们您尝试了什么以及为什么它不能满足您的需求。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见how to ask
标签: javascript arrays underscore.js javascript-objects lodash