首页 > 解决方案 > 如何从数组中的对象中获取最小整数?

问题描述

基本上我想要实现的是来自与其他对象的数组中的对象的最小整数。

r.Collection

是一个包含 3 个对象的数组,所以它看起来像这样:

[{foo:"bar",abc:"xyz",number:1},{foo:"car",abc:"hcu",number:2},{foo:"tar",abc:"uif",number:3}]

现在的目标是对这个数组进行排序。并查看每个数值,一旦找到最小值。我需要它将整个对象拉出数组以供以后使用。

目前我正在尝试做的事情不起作用,我不确定。我可能做错了

 for (o in r.Collection) {
                    var data = r.Collection[o]
                    console.log(Math.min(data.number))
                }

我知道使用 Math.min 来查找数组中的最小数字,但是当我运行此代码时,每个对象都会被打印出来。

我如何对这个数组进行排序,以提取我们的具有最低数值的对象?

标签: javascriptarrays

解决方案


Math.min对此有点简单 - 无法在具有多个值的对象中指定 min 的含义。

您可以使用reduce()循环列表中的项目并跟踪当前最低的项目。根据传递给 reduce 的函数,结果将是列表中最低的:

let l = [{foo:"bar",abc:"xyz",number:1},{foo:"car",abc:"hcu",number:2},{foo:"tar",abc:"uif",number:3}]

let lowest = l.reduce((lowest, item) => item.number < lowest.number ? item: lowest)
console.log(lowest)


推荐阅读