【发布时间】:2016-01-26 04:29:38
【问题描述】:
我有两个数组list1 和list2,它们的对象具有一些属性; userId 是 Id 或唯一属性:
list1 = [
{ userId: 1234, userName: 'XYZ' },
{ userId: 1235, userName: 'ABC' },
{ userId: 1236, userName: 'IJKL' },
{ userId: 1237, userName: 'WXYZ' },
{ userId: 1238, userName: 'LMNO' }
]
list2 = [
{ userId: 1235, userName: 'ABC' },
{ userId: 1236, userName: 'IJKL' },
{ userId: 1252, userName: 'AAAA' }
]
我正在寻找一种简单的方法来执行以下三个操作:
-
list1 operation list2应该返回元素的交集:[ { userId: 1235, userName: 'ABC' }, { userId: 1236, userName: 'IJKL' } ] -
list1 operation list2应该返回list1中没有出现在list2中的所有元素的列表:[ { userId: 1234, userName: 'XYZ' }, { userId: 1237, userName: 'WXYZ' }, { userId: 1238, userName: 'LMNO' } ] -
list2 operation list1应该返回list2中不会出现在list1中的元素列表:[ { userId: 1252, userName: 'AAAA' } ]
【问题讨论】:
-
您的标题说“差异”,但您的问题提到了“交叉点”。它是哪一个?你能举例说明你期望的输出是什么吗?
标签: javascript arrays set-intersection set-difference set-operations