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 07:49:56 浏览: 42
可以使用数组的 `reduce` 方法来实现:
```
const result = arr.reduce((max, obj) => {
if (obj.value1 > max.value) {
return { value: obj.value1, field: 'value1' };
}
if (obj.value2 > max.value) {
return { value: obj.value2, field: 'value2' };
}
return max;
}, { value: -Infinity });
console.log(result);
```
输出:
```
{ value: 85934, field: 'value2' }
```
解释:
首先初始化 `max` 为 `{ value: -Infinity }`,表示最大值为负无穷。
然后对于每个对象,如果 `value1` 大于 `max.value`,则更新 `max` 为 `{ value: obj.value1, field: 'value1' }`,表示当前最大值为 `value1`,对应的字段为 `value1`。
同理,如果 `value2` 大于 `max.value`,则更新 `max` 为 `{ value: obj.value2, field: 'value2' }`,表示当前最大值为 `value2`,对应的字段为 `value2`。
最后返回 `max` 即可。
相关问题
找出const arr = [ { name: 'ceshi1', value1: 345, value2: 85934 }, { name: 'ceshi2', value1: 3432, value2: 343432 }, ];的最大值
这个数组中有两个对象,每个对象有两个属性:value1和value2。如果你要求的是整个数组(包括两个对象)的最大值,那么可以使用以下代码:
```
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)
);
console.log(result); // 输出 343432
```
这里使用了`Math.max()`函数来获取一组数字的最大值。我们使用了ES6的展开运算符`...`将两个`map()`函数的结果展开为一组数字,再将这组数字作为参数传递给`Math.max()`函数。
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) );找到最大值的那个字段
可以使用 `reduce()` 方法来实现:
```javascript
const arr = [
{ name: 'ceshi1', value1: 345, value2: 85934 },
{ name: 'ceshi2', value1: 3432, value2: 343432 },
];
const result = arr.reduce((max, obj) => {
const objMax = Math.max(obj.value1, obj.value2);
return objMax > max.value ? { value: objMax, name: obj.name } : max;
}, { value: -Infinity });
console.log(result.name); // 输出 ceshi2
```
这段代码会遍历 `arr` 数组中的每个对象,计算出它们的 `value1` 和 `value2` 字段的最大值,然后将结果与已知的最大值进行比较,返回一个新的最大值对象,直到遍历完所有的对象。最终得到的 `result` 对象就是拥有最大值的那个对象,它的 `name` 字段即为所求的结果。
阅读全文