js求数组最大值最小值方法

本文介绍了两种方法来找到数组中的最大值和最小值:一是使用循环逐个比较,二是利用JavaScript的Math.max和Math.min函数。通过实例演示了如何在对象数组中找到value属性的最大值和最小值。

1、假设法

假设当前数组中的第一个值是最大值,然后拿这个最大值和后面的项逐一比较,如果后面的某一个值比假设的值还大,说明假设错了,我们把假设的值进行替换。最后得到的结果就是我们想要的。

// 获取最大值:

var arr = [22,13,6,55,30];
var max = arr[0];

for(var i = 1; i < arr.length; i++) {
   var cur = arr[i];
   cur > max ? max = cur : null
}

console.log(max); // 55

// 获取最小值:

var arr = [22,13,6,55,30];
var min = arr[0];

for(var i = 1; i < arr.length; i++) {
  var cur = arr[i];
  cur < min ? min = cur : null
}
console.log(min)  // 6

2、使用 Math 中的 max/min 方法

var arr = [22,13,6,55,30];

var max = Math.max.apply(null, arr);
var min = Math.min.apply(null, arr);

console.log(max, min) // 55,6

例如要查找array数组中对象的value属性的最大值

var array=[
        {
            "index_id": 119,
            "area_id": "18335623",
            "name": "满意度",
            "value": "100"
        },
        {
            "index_id": 119,
            "area_id": "18335624",
            "name": "满意度",
            "value": "20"
        }];
var max = Math.max.apply(Math, array.map(function(res) {return res.value}))
var min = Math.min.apply(Math, array.map(function(res) {return res.value}))
获取数组最大值最小值有多种方法,以下为你详细介绍: ### 方法一:遍历数组 思路是假设数组的第一个元素为最大值最小值,然后遍历数组,不断更新最大值最小值。 ```java public class Main { public static void main(String[] args) { int[] arr = {11, 22, 55, 44, 77, 66}; int[] maxAndMin = get(arr); System.out.println("最小值是:" + maxAndMin[0]); System.out.println("最大值是:" + maxAndMin[1]); } public static int[] get(int[] arr) { // 最大值 int max = arr[0]; for (int i = 0; i < arr.length; i++) { if (arr[i] > max) { max = arr[i]; } } // 最小值 int min = arr[0]; for (int i = 0; i < arr.length; i++) { if (arr[i] < min) { min = arr[i]; } } // 用一个数组接收最大值最小值 int[] maxAndMin = {min, max}; // 返回数组 return maxAndMin; } } ``` 此方法适用于各种编程语言,核心逻辑是通过循环遍历数组元素并比较大小来确定最值,是一种基础且通用的方法[^1]。 ### 方法二:使用 Java 8 的 Stream API 在 Java 8 及以上版本中,可以使用 Stream API 来获取数组最大值最小值。 ```java import java.util.Arrays; public class Main { public static void main(String[] args) { int[] nums = {3, 1, 5, 2, 4}; int max = Arrays.stream(nums).max().getAsInt(); int min = Arrays.stream(nums).min().getAsInt(); System.out.println("数组中的最大值:" + max); System.out.println("数组中的最小值:" + min); } } ``` 这种方法简洁高效,利用了 Java 8 的新特性,代码更具可读性和简洁性[^2]。 ### 方法三:JavaScript 中的 Math 方法JavaScript 中,可以使用 `Math.max()` 和 `Math.min()` 方法结合 `apply()` 来获取数组最大值最小值。 ```javascript var arr = [1, 2, 3]; var max = Math.max.apply(null, arr); var min = Math.min.apply(null, arr); console.log("最大值:" + max); console.log("最小值:" + min); ``` 这种方法利用了 JavaScript 的内置函数,代码非常简洁,但需要注意的是 `apply()` 方法在处理大型数组时可能会有性能问题[^5]。 ### 方法四:JavaScript 中的 forEach 方法JavaScript 中,还可以使用 `forEach` 方法遍历数组来获取最大值最小值。 ```javascript var arr = [51, 172, 81]; var MaxHeight = arr[0], MinHeight = arr[0]; arr.forEach(item => MaxHeight = item > MaxHeight ? item : MaxHeight); // 最大值 arr.forEach(item => MinHeight = MinHeight > item ? item : MinHeight); // 最小值 console.log("最大值:" + MaxHeight); console.log("最小值:" + MinHeight); ``` 这种方法通过 `forEach` 遍历数组元素,使用三元运算符更新最大值最小值,逻辑清晰[^3]。 ### 方法五:自定义函数检查输入 在 JavaScript 中,可以编写一个自定义函数来获取数组最大值最小值,同时检查输入是否为数组以及数组是否为空。 ```javascript function getMinMax(arr) { if (!Array.isArray(arr) || arr.length === 0) { return null; } let min = arr[0]; let max = arr[0]; for (let i = 1; i < arr.length; i++) { if (arr[i] < min) { min = arr[i]; } if (arr[i] > max) { max = arr[i]; } } return { min, max }; } var arr = [1, 2, 3]; var result = getMinMax(arr); console.log("最小值:" + result.min); console.log("最大值:" + result.max); ``` 这种方法增加了输入验证,提高了代码的健壮性[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值