我有两个对象数组。这些数组可以是任意长度。例如,我的第一个数组 "details" 包含三个对象。
let details = [
{a: 1, b: 200, name: "dad"},
{a:2, b: 250, name: "cat"},
{a:3, b: 212, name: "dog" }
]
第二个数组由四个对象组成:
let certs = [
{id: 991, b: 250, dn: "qwerty", sign: "GOST"},
{id: 950, b: 251, dn: "how", sign: "RSA" },
{id: 100, b: 250, dn: "how are", sign: "twofish" },
{id: 957, b: 212, dn: "how you", sign: "black" }
]
如何获取由对象某个属性的所有交集组成的数组,例如由'b'?
我的意思是从“certs”数组中获取过滤后的数组,该数组仅包含三个对象而不是四个。
因为在certs数组中索引为1的元素具有属性“b”,其等于251。但是“details”数组中没有具有属性b等于251的对象。
因此,我的过滤后的certs数组应该只包含三个对象。如何实现?
我尝试了lodash方法,但它们都不适用。例如:
_.intersectionBy(certs, details, 'b')
只给了我这个:
0: {id: 991, b: 250, dn: "qwerty", sign: "GOST"}
1: {id: 957, b: 212, dn: "how you", sign: "black"}
length: 2
这个对象在最终数组中不存在:
{id: 100, b: 250, dn: "how are", sign: "twofish" }