繁体   English   中英

在具有最多道具的数组中返回 object

[英]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 }
];

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

您可以分配给单个 object。

 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属性来从 object 获取密钥的数量。 有了这个,您可以通过检查每对对象来减少数组,并将具有最多键的对象作为一个衬垫返回:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM