如何在 JavaScript 中与两个对象数组进行内部连接?
How can I inner join with two object arrays in JavaScript?
我需要在 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"
}
]
规则:
- 上:array2.externalid = array1.id
- select: array1.id, array1.name, array2.externalid, array2.value
我的做法:
array1.filter(e => array2.some(f => f.externalid == e.id));
// I need help for continue
我该怎么做?
无所谓信息:我用ES5和纯javascript
你可以这样做:
const res = array2.map((item) => {
const related = array1.find((el) => el.id == item.externalid);
return { ...item, ...related };
});
使用 map 遍历 array2 并使用 find 获取 array1 的相对值。
我需要在 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"
}
]
规则:
- 上:array2.externalid = array1.id
- select: array1.id, array1.name, array2.externalid, array2.value
我的做法:
array1.filter(e => array2.some(f => f.externalid == e.id));
// I need help for continue
我该怎么做?
无所谓信息:我用ES5和纯javascript
你可以这样做:
const res = array2.map((item) => {
const related = array1.find((el) => el.id == item.externalid);
return { ...item, ...related };
});
使用 map 遍历 array2 并使用 find 获取 array1 的相对值。