获取在Object中找到的所有属性
我有一个对象数组
const data = [{id:1, a:false, b:[5,4]},
{id:2, a:true, b:[]},
{id:3, c:'', d:{}},
{id:4, e:[1,2,3], f:{h: 1}}];
基本上,我试图返回一个具有对象中找到的所有属性的对象,然后给我最新的值。
所以它应该给我以下结果:
// { id: 4, a: false, b: [], c: '', d: {}, e: [1,2,3], f: {h: 1}}
我玩过 Object.getOwnPropertyNames 和 Object.values,但现在卡住了一段时间,对 JS 来说还算陌生。
回答
您可以使用简单的调用将Object.assign内部的所有对象合并data为一个对象。
Object.assign({}, ...data)
Object.assign({}, ...data)
该方法可以合并任意数量的源对象。因此,展开数组以将它们作为参数传递。由于对象是按顺序合并的,所以优先考虑后面的对象。如果一个属性存在于多个对象中,则索引较高的对象会覆盖之前的值。所以,id:4出现在输出中
这是一个片段: