javascript - 如何返回具有最小值键的对象数组?
问题描述
我有一个对象数组,如下所示。如何返回包含bidAmount最小值的对象数组?
[
{userId:2,bidAmount:9200},
{userId:3,bidAmount:8500},
{userId:4,bidAmount:8100},
{userId:5,bidAmount:8100}
]
预期结果:
[
{userId:4,bidAmount:8100},
{userId:5,bidAmount:8100}
]
我尝试 Array.reduce 找到最小值,但它只返回一个对象
var min = result.reduce(function(res, obj) {
return (obj.bidAmount < res.bidAmount) ? obj : res;
});
//Returns {userId: 4, bidAmount: 8100}
如何做到这一点?
解决方案
您可以使用数组作为结果集来减少并检查bidAmount
,如果它更小或相等。
const data = [{userId: 2, bidAmount: 9200}, {userId: 3, bidAmount: 8500}, {userId: 4, bidAmount: 8100}, {userId: 5, bidAmount: 8100}]
var minima = data.reduce((acc, el, index) => {
if (!index || acc[0].bidAmount > el.bidAmount) return [el];
if (acc[0].bidAmount === el.bidAmount) acc.push(el);
return acc;
}, null);
console.log(minima);
.as-console-wrapper {
max-height: 100% !important;
top: 0;
}
推荐阅读
- typeorm - Typeorm 子查询添加选择
- maven - 创建汇总报告结合所有 Jtl 文件
- c# - C#:等到命令完全执行
- java - 在java中不断检查互联网连接
- android - 如何在 react-native android 中创建渐变透明图像?
- hyperledger-fabric - 在多个 CA 的情况下,orderer 如何验证身份
- angular - 正确使用 flatMap - mergeMap 或 concatMap 会更高效
- react-native - 使用 React-Native-perspective-image-cropper 在 react-native 中进行动态图像裁剪
- android - 当用户可见 3 个项目时,ViewPager 不加载屏幕外片段
- r - 如何添加不相等的间隔到日期