javascript - 返回具有最多道具的数组中的对象
问题描述
假设我有一个这样的对象数组:
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);
推荐阅读
- shell - 是否可以使用 scp 并将文件名更改为 $date
- javascript - Vscode ext 创建具有新属性的任务
- c++ - 如何调试我的无限 8-queens 程序?
- java - selenium java拖放-试图拖放
- node.js - Microservices and refresh tokens NodeJS
- browsermob-proxy - 如何修复没有互联网:ERR_PROXY_CONNECTION_FAILED
- java - 在 pdf 中编写阿拉伯语文本注释
- excel - Determining GroupBox from OptionButton errors out but expanding variable properties in locals window fixes issue
- python - Python + Sqlite 3 query with multiple conditions
- c# - Word 互操作和遍历形状对象以查找文本框