const arr = [ { name: 'ceshi1', value1: 345, value2: 85934 }, { name: 'ceshi2', value1: 3432, value2: 343432 }, ]; const result = Math.max( ...arr.map(obj => obj.value1), ...arr.map(obj => obj.value2) );找出最大值,并能找到最大值的那个字段
时间: 2023-11-27 10:49:58 浏览: 52
key-mongo:KeyValue用法mongodb
可以使用 `reduce()` 方法来实现:
```
const arr = [
{ name: 'ceshi1', value1: 345, value2: 85934 },
{ name: 'ceshi2', value1: 3432, value2: 343432 },
];
const result = arr.reduce((acc, cur) => {
if (cur.value1 > acc.maxValue) {
return { maxValue: cur.value1, fieldName: 'value1' };
} else if (cur.value2 > acc.maxValue) {
return { maxValue: cur.value2, fieldName: 'value2' };
} else {
return acc;
}
}, { maxValue: -Infinity, fieldName: '' });
console.log(result); // { maxValue: 343432, fieldName: 'value2' }
```
首先将 `maxValue` 和 `fieldName` 初始值分别设置为负无穷和空字符串。然后通过 `reduce()` 方法遍历数组,依次比较每个对象的 `value1` 和 `value2` 属性,如果大于 `maxValue`,则更新 `maxValue` 和 `fieldName`。最后返回包含最大值和字段名的对象。
阅读全文