[英]Spread an array of objects into a parent object
有没有一种简单的方法可以使用 spread ...
运算符将对象数组与另一个对象组合以创建单个对象? 这个例子显示了我想要完成的事情:
const arrayOfObjects = [
{ x: 'foo' },
{ y: 'bar' }
];
const obj = {
hello: 'world'
};
我正在寻找的输出如下:
{
x: 'foo',
y: 'bar',
hello: 'world'
}
我已经尝试了以下内容,但并没有完全给出预期的输出。
{
hello: 'world'
...arrayOfObjects
}
// Gives
{
0: { x: 'foo' },
1: { y: 'bar' },
hello: 'world'
};
是否可以巧妙地使用扩展运算符来做到这一点?
您可以使用带有扩展语法的Object.assign()
...
const arrayOfObjects = [{ x: 'foo' }, { y: 'bar' }]; const obj = { hello: 'world' }; var result = Object.assign({}, obj, ...arrayOfObjects); console.log(result)
你可以使用 Object.assign();
Object.assign(obj, ...arrayOfObjects)
此选项将改变对象 obj 而不是创建新实例。
Object.assign
很棒,我想出了另一种可能的解决方案,为喜欢使用它的人使用reduce
const arrayOfObjects = [
{ x: 'foo' },
{ y: 'bar' }
];
const obj = {
hello: 'world'
};
let result = arrayOfObjects.reduce((prev, current) => ({
...prev,
...current
}), obj)
console.log(result);
// {hello: "world", x: "foo", y: "bar"}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.