Javascript 如何使用lodash查看对象和数组之间是否存在交集?

Javascript 如何使用lodash查看对象和数组之间是否存在交集?,javascript,lodash,Javascript,Lodash,假设我有2个json对象,我想看看是否存在基于ID的匹配/交集。以下是两个对象: obj= { "container_copy": { "card1": { "id": "300", "copy": "hello" }, "card2": { "id": "1000", "type": "card" }, "text":

假设我有2个json对象,我想看看是否存在基于ID的匹配/交集。以下是两个对象:

 obj=   {
      "container_copy": {
        "card1": {
          "id": "300",
          "copy": "hello"
        },
        "card2": {
          "id": "1000",
          "type": "card"
        },
        "text": "bla"
      }
    }

我试过这个:

 let o1 = _.keyBy(_.values(obj), 'id');
 let o2 = _.keyBy(items, 'id');
 let inter = _.intersection(_.keys(o1), _.keys(o2));
 let result = _.chain(o1)
            .pick(inter)
            .merge(_.pick(o2, inter))
            .value();

我做错了什么?

.values
返回一个数组,因此在将值赋给
o1
时需要取第一个元素:
.keyBy(
.values(obj)[0],'id')
您对示例的预期结果是什么?我不完全理解你所说的“基于ID的匹配/交集”是什么意思。。。
 let o1 = _.keyBy(_.values(obj), 'id');
 let o2 = _.keyBy(items, 'id');
 let inter = _.intersection(_.keys(o1), _.keys(o2));
 let result = _.chain(o1)
            .pick(inter)
            .merge(_.pick(o2, inter))
            .value();