gpt4 book ai didi

javascript - 在 Javascript 中连接多个键上的对象数组

转载 作者:行者123 更新时间:2023-11-28 12:13:21 25 4
gpt4 key购买 nike

我有两个对象数组:

A = [
{ id1: "1", id2: "a", p1: "3", p2: "4" },
{ id1: "1", id2: "b", p1: "5", p2: "6" },
{ id1: "2", id2: "a", p1: "7", p2: "8" },
{ id1: "2", id2: "b", p1: "9", p2: "10" }
];


B = [
{ id1: "1", id2: "a", p3: "13", p4: "14" },
{ id1: "1", id2: "b", p3: "15", p4: "16" },
{ id1: "2", id2: "a", p3: "17", p4: "18" },
{ id1: "2", id2: "b", p3: "19", p4: "20" }
];

我需要一个函数,根据两个属性 id1id2 在两个对象之间进行内部联接,从而将其他属性进行并集(除了 id1id2 之外,属性名称永远不会相等)换句话说,我需要一个结果:

C = [
{ id1: "1", id2: "a", p1: "3", p2: "4", p3: "13", p4: "14" },
{ id1: "1", id2: "b", p1: "5", p2: "6", p3: "15", p4: "16" },
{ id1: "2", id2: "a", p1: "7", p2: "8", p3: "17", p4: "18" },
{ id1: "2", id2: "b", p1: "9", p2: "10", p3: "19", p4: "20" }
];

在这里我可以找到一种使用单个键进行连接的方法。我需要一个用于多个 key 盒的扩展。

http://learnjsdata.com/combine_data.html

最佳答案

两者都提供了答案提供预期结果(内部联接应该包含两个数据集中的匹配项)。

我有一些扩展的输入数组,以演示提供的答案和我的答案的输出差异:

const A = [
{id1:"1", id2:"a", p1:"3", p2:"4"},
{id1:"1", id2:"b", p1:"5", p2:"6"},
{id1:"2", id2:"a", p1:"7", p2:"8"},
{id1:"2", id2:"b", p1:"9", p2:"10"},
{id1:"3", id2:"c", p1:"1", p2:"3"}
];

const B = [
{id1:"1", id2:"a", p3:"13", p4:"14"},
{id1:"1", id2:"b", p3:"15", p4:"16"},
{id1:"2", id2:"a", p3:"17", p4:"18"},
{id1:"2", id2:"b", p3:"19", p4:"20"},
{id1:"4", id2:"k", p3:"11", p4:"13"}
];

const innerJoined = A.reduce((result, itemA) => {
const itemB = B.find(itemB => itemB.id1 == itemA.id1 && itemB.id2 == itemA.id2);
if(itemB) result.push({...itemA, ...itemB});
return result;
}, []);

console.log(innerJoined);

关于javascript - 在 Javascript 中连接多个键上的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55832412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com