Javascript 组合JS对象键

Javascript 组合JS对象键,javascript,Javascript,我希望在不覆盖原始内容的情况下组合关键点。 以前,考虑到某些键被覆盖,我对.assign有问题 我想要的示例: 在: 输出: 我所尝试的: const c = {...a, ...b} 以及: 这些方法即使结果不一样,也会产生类似的结果 最后: concat() 但是我可能没有正确使用语法,也无法得到结果。这里没有内置的assign或spread等等 你必须明确地这样做。比如说: const a={ 第一:[1,2,3], 第二:[5] } 常数b={ 第一:[5], 第二名:[6,7,8

我希望在不覆盖原始内容的情况下组合关键点。 以前,考虑到某些键被覆盖,我对.assign有问题

我想要的示例:

在:

输出:

我所尝试的:

const c = {...a, ...b}
以及:

这些方法即使结果不一样,也会产生类似的结果

最后:

concat()

但是我可能没有正确使用语法,也无法得到结果。

这里没有内置的
assign
spread
等等

你必须明确地这样做。比如说:

const a={
第一:[1,2,3],
第二:[5]
}
常数b={
第一:[5],
第二名:[6,7,8]
}
//我想要一个新的东西。。。
常数输出={
//具有属性“first”,该属性包括
//“a.first”中的项目,然后是“b.first”中的项目`
第一个:[…a.首先,…b.首先],
//“第二个”属性也是如此
秒:[…秒,…秒],
}

控制台。注销这里没有内置的
分配
排列
之类的东西来实现您的目标

你必须明确地这样做。比如说:

const a={
第一:[1,2,3],
第二:[5]
}
常数b={
第一:[5],
第二名:[6,7,8]
}
//我想要一个新的东西。。。
常数输出={
//具有属性“first”,该属性包括
//“a.first”中的项目,然后是“b.first”中的项目`
第一个:[…a.首先,…b.首先],
//“第二个”属性也是如此
秒:[…秒,…秒],
}

控制台。注销您可能需要创建一个通用案例:

//所有对象
常量objs=[
{第一:[1,2,3],第二:[5]},
{第一:[5],第二:[6,7,8]},
{第一:[3,4],第二:[5,6]}
]
//唯一键
const unique_keys=new Set([].concat.apply([],objs.map(Object.keys));
//统一对象
常量统一对象=[…唯一密钥].reduce((o,密钥)=>{
o[key]=objs.map(e=>e[key]).reduce((a,e)=>a.concat(e),[]);
返回o;
}, {});

要获取唯一键,它比Object.keys(Object.assign(…objs))
稍微复杂一些,但性能更好,因为它根本不处理值。

您可能需要创建一个通用案例:

//所有对象
常量objs=[
{第一:[1,2,3],第二:[5]},
{第一:[5],第二:[6,7,8]},
{第一:[3,4],第二:[5,6]}
]
//唯一键
const unique_keys=new Set([].concat.apply([],objs.map(Object.keys));
//统一对象
常量统一对象=[…唯一密钥].reduce((o,密钥)=>{
o[key]=objs.map(e=>e[key]).reduce((a,e)=>a.concat(e),[]);
返回o;
}, {});

要获得唯一键,它比Object.keys(Object.assign(…objs))
稍微复杂一些,但性能更好,因为它根本不处理值。

这里的模式是什么?不清楚这两个
5
条目的去向。这只是将每个对象的
压缩在一起吗?您可以使用
concat()
组合两个数组。到目前为止,您自己尝试了什么来解决这个问题?StackOverflow不是免费的编码服务。你应该会的。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并点击:)欢迎使用StackOverflow!你能分享一下你到目前为止的尝试吗?StackOverflow不是一个免费的代码编写服务,它希望您首先尝试解决自己的问题。请更新您的问题,以显示您已经尝试过的内容,并显示您在某个问题中面临的具体问题。欲了解更多信息,请参阅,并选择。这里的模式是什么?不清楚这两个
5
条目的去向。这只是将每个对象的
压缩在一起吗?您可以使用
concat()
组合两个数组。到目前为止,您自己尝试了什么来解决这个问题?StackOverflow不是免费的编码服务。你应该会的。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并点击:)欢迎使用StackOverflow!你能分享一下你到目前为止的尝试吗?StackOverflow不是一个免费的代码编写服务,它希望您首先尝试解决自己的问题。请更新您的问题,以显示您已经尝试过的内容,并显示您在某个问题中面临的具体问题。欲了解更多信息,请参阅,然后点击。
const c = {...a, ...b}
Object.assign(a, b);
concat()