简体   繁体   English

我如何在 JavaScript 中加入两个 object arrays?

[英]How can I inner join with two object arrays in JavaScript?

I need inner join with two array in javascript like this:我需要像这样在 javascript 中与两个数组进行内部连接:

    
    array1 = 
    [
      {
        "id": 1,
        "name": "Tufan"
      },
      {
        "id": 2,
        "name": "Batuhan"
      },
      {
        "id": 3,
        "name": "Hasan"
      }
    ]
    
    array2 = 
    [
      {
        "name": "yyy",
        "externalid": "1",
        "value": "Asd"
      },
      {
        "name": "aaaa"
        "externalid": "2",
        "value": "ttt"
      }
    ]
    
    expectedArray = 
    [
      {
        "id": 1,
        "name": "Tufan",
        "externalid": "1",
        "value": "Asd"
      },
      {
        "id": 2,
        "name": "Batuhan",
        "externalid": "2",
        "value": "ttt"
      }
    ]

rules:规则:

  1. on: array2.externalid = array1.id on: array2.externalid = array1.id
  2. select: array1.id, array1.name, array2.externalid, array2.value select: array1.id, array1.name, array2.externalid, array2.value

My approach:我的方法:

array1.filter(e => array2.some(f => f.externalid == e.id));
// I need help for continue

How can I make this?我该怎么做?

Doesn't matter information: I use ES5 and pure javascript无所谓信息:我用ES5和纯javascript

You can do it like this:你可以这样做:

const res = array2.map((item) => {
  const related = array1.find((el) => el.id == item.externalid);
  return { ...item, ...related };
});

Using a map to loop over the array2 and a find to get the array1 relative.使用 map 遍历 array2 并使用 find 获取 array1 相对值。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM