使用reduce将数组内对象的嵌套属性合并为包含所有嵌套属性的单个对象,但仅获得单个值的方法如下:
const arr = [
{ name: 'Alice', age: 25, address: { city: 'New York', country: 'USA' } },
{ name: 'Bob', age: 30, address: { city: 'London', country: 'UK' } },
{ name: 'Charlie', age: 35, address: { city: 'Paris', country: 'France' } }
];
const mergedObject = arr.reduce((acc, obj) => {
Object.keys(obj).forEach(key => {
if (typeof obj[key] === 'object' && obj[key] !== null) {
Object.assign(acc, obj[key]);
}
});
return acc;
}, {});
console.log(mergedObject);
上述代码中,我们使用reduce方法对数组进行迭代,初始值为一个空对象{}
。在每次迭代中,我们使用Object.keys()
方法获取当前对象的所有属性名,并使用forEach()
方法遍历这些属性。如果属性的值是一个非空对象,则使用Object.assign()
方法将其合并到累加器对象acc
中。
最终,我们得到的mergedObject
对象将包含所有嵌套属性的值,但仅获得单个值。例如,对于上述示例数组arr
,最终的mergedObject
对象将为:
{
city: 'Paris',
country: 'France'
}
这个方法适用于合并多个对象的嵌套属性,并且只需要获得单个值的场景。
领取专属 10元无门槛券
手把手带您无忧上云