return 数组中具有最多 props 的对象

return object in an array with the most props

假设我有一个这样的对象数组:

const arr = [
   { a: 1, b: 2, c: 3, d: 4 },
   { a: 1 },
   { a: 1, b: 2, c: 3 },
   { a: 1, b: 2 }
];

怎样才能return得到最多properties/keys的对象?最好使用高阶函数以高效简洁的方式使用。

您可以分配给单个对象。

const 
    array = [{ a: 1, b: 2, c: 3, d: 4 }, { a: 1 }, { a: 1, b: 2, c: 3 }, { a: 1, b: 2 }],
    object = Object.assign({}, ...array);

console.log(object);

如果你有不同的值,你可以减少数组。

const 
    array = [{ a: 1, b: 2, c: 3, d: 4 }, { a: 1 }, { a: 1, b: 2, c: 3 }, { a: 1, b: 2 }],
    object = array.reduce((a, b) => Object.keys(a).length > Object.keys(b).length
        ? a
        : b
    );

console.log(object);

您可以通过调用 Object.keys(obj) 然后检查它的 length 属性 从对象中获取键的数量。 这样,您可以通过检查每一对对象和 return 具有最多键的对象作为一个衬垫来减少数组:

const biggestObject = 
    arr.reduce((a, b) => Object.keys(a).length > Object.keys(b).length ? a : b);