javascript - 返回具有最多 props 的数组中的对象

标签 javascript arrays object key higher-order-functions

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

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

如何返回具有最多属性/键的对象?最好使用高阶函数以高效和简洁的方式使用。

最佳答案

您可以分配给单个对象。

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);

关于javascript - 返回具有最多 props 的数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65265268/

相关文章:

JavaScript - 访问数组

c++ - C++ 中的共存类

javascript - 返回对象后这个数组的作用是什么?

javascript - Angular ngview 和 nginclude 破坏了 css

javascript - 是否有以 HTML、CSS 和 JavaScript 实现的现有在线相册制作工具?

javascript - 在 typescript 中使用 Angular 传单指令的步骤

c - 我想对c中的字符数组进行排序

javascript - css - 固定位置侧边栏导航与页脚重叠

java - 字符串数组中的第一个唯一字符串

python - 在Python中,语句是对象吗?