Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 合并对象的对象_Javascript_Object_Merge - Fatal编程技术网

Javascript 合并对象的对象

Javascript 合并对象的对象,javascript,object,merge,Javascript,Object,Merge,我想合并两个包含对象本身的对象。 像这样: let selections = { 123: { abc: {name: 'abc'}, def: {name: 'def'} }, 456: { ghi: {name: 'ghi'}, jkl: {name: 'jkl'} } }; let flatSelections = Object.keys(selections).reduce((r, k) =

我想合并两个包含对象本身的对象。 像这样:

let selections = {
    123: {
        abc: {name: 'abc'},
        def: {name: 'def'}
    },
    456: {
        ghi: {name: 'ghi'},
        jkl: {name: 'jkl'}
    }
};

let flatSelections = Object.keys(selections).reduce((r, k) => {
    return selections[k];
}, {});

console.log(flatSelections);

/* expected data
flatSelections = {
    abc: {name: 'abc'},
    def: {name: 'def'},
    ghi: {name: 'ghi'},
    jkl: {name: 'jkl'}
};
*/
但我只有选择['456']作为输出。

您可以在
对象.values()上应用
reduce

let选择={
123: {
abc:{name:'abc'},
定义:{name:'def'}
},
456: {
ghi:{name:'ghi'},
jkl:{name:'jkl'}
}
};
const res=对象。值(选择)。减少((a,c)=>{
返回{…a,…c};
}, {});
控制台日志(res)

.as控制台包装{min height:100%!important;top:0;}
您需要从reduce实际返回修改后的累加器。使用
对象。分配
扩展语法
累加器即r
与项目即k

也可以使用
Object.values
,因为您只关心值。
let选择={
123: {
abc:{name:'abc'},
定义:{name:'def'}
},
456: {
ghi:{name:'ghi'},
jkl:{name:'jkl'}
}
};
让flatSelections=Object.Value(selections).reduce((r,k)=>{
返回对象。赋值(r,k)
}, {});
控制台日志(flatSelections)使用
Object.assign()

let选择={
123: {
abc:{name:'abc'},
定义:{name:'def'}
},
456: {
ghi:{name:'ghi'},
jkl:{name:'jkl'}
}
};
让输出=Object.assign(选项[“123”]、选项[“456”])

console.log(输出)
Hi Shubham!非常感谢你。清楚,简单。谢谢你的回答。我知道这种可能性。但它在不知道对象键(123或456)的情况下就要这么做了,它可能是任何东西。