是否可以将math.max用于对象数组?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以将math.max用于对象数组?相关的知识,希望对你有一定的参考价值。

我看到这样的答案以获取数组中的最大数字,

var arr = [1, 2, 3];
var max = Math.max(...arr);

但是如何对一组对象执行此操作,每个对象都有一个数字字段,类似这样

class test {
   number: x
   other_fields
}

var arr = [test1, test2, test3];
var max = Math.max(...arr);

答案

首先使用.map将对象数组转换为数字数组:

var max = Math.max(
  ...arr.map(obj => obj.number)
);

const obj1 = {
   number: 2,
   prop: 'val'
};
const obj2 = {
   number: 2,
   prop: 'val'
};

var arr = [obj1, obj2];
var max = Math.max(
  ...arr.map(obj => obj.number)
);
console.log(max);

以上是关于是否可以将math.max用于对象数组?的主要内容,如果未能解决你的问题,请参考以下文章

JS简单的判断一个数组里值是不是相等

取最大值(最小值)简介代码

如何使用 reduce 测试 Math.max 函数的数组

math对象的主要方法

利用Math.max/min获取数组最大最小值

JavaScript中pipe实战