javascript - 通过javascript中的最小值属性过滤对象
问题描述
我有一个对象数组,如下所示:
[
{
"id": 100,
"Name": "T1",
"amt": 15,
},
{
"id": 102,
"Name": "T3",
"amt": 15,
},
{
"id": 100,
"Name": "T1",
"amt": 20,
},
{
"id": 105,
"Name": "T6",
"amt": 15,
}
]
我想通过amt的最小值过滤数组中的对象。有两个对象的 id 为 100,但amt不同(15 和 20)。我想过滤最小值 15。输出应该是:
[
{
"id": 100,
"Name": "T1",
"amt": 15,
},
{
"id": 102,
"Name": "T3",
"amt": 15,
},
{
"id": 105,
"Name": "T6",
"amt": 15,
}
]
我关注了这篇文章,但不适合我的问题。有没有更简单的方法来做到这一点,无论是纯 JavaScript 还是 lodash?
解决方案
您可以分组id
并从每个组中取出最小值为 的对象amt
。
var data = [{ id: 100, Name: "T1", amt: 15 }, { id: 102, Name: "T3", amt: 15 }, { id: 100, Name: "T1", amt: 20 }, { id: 105, Name: "T6", amt: 15 }],
result = _(data)
.groupBy('id')
.map(group => _.minBy(group, 'amt'))
.value();
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
推荐阅读
- node.js - “npm install”安装不熟悉的文件
- c - 如何使用 Bash shell 脚本存储 C 程序的输出
- python-3.x - 通过优先考虑另一列中的文本来分组熊猫
- javascript - 通过索引交换js数组中的元素
- javascript - 如何使用 Jquery 获取具有特定 id 的 div 值?
- python - Python Telegram Bot - run_daily 不起作用
- android - 我可以删除软键盘中的点(。)吗?
- image - 是否有另一种方法可以从 Codename One 项目中删除未使用的图像?
- python - OSRS 钓鱼计算器“if...elif”块重复列表中每个项目的结果
- office-ui-fabric - Office UI 在 SearchBox 中执行搜索