我看到这样的答案,用于获取数组中的最大数字,
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);
如果您需要一个对象而不仅仅是数字,请使用 reduce
代替:
const obj1 = {
number: 2,
prop: 'val'
};
const obj2 = {
number: 2,
prop: 'val'
};
var arr = [obj1, obj2];
const largestObj = arr.reduce((a, obj) => a.number > obj.number ? a : obj);
console.log(largestObj);
关于javascript - 可以将 math.max 用于对象数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60471435/