数组取最大值

.es6扩展运算符配合Math.max 使用

可能大家都知道 在 Math.max()方法中 参数不能是数组形式,但是通过扩展运算符 把数组打散传入就可以了

var arr=[1,5,6,4,7,8,9,6,5];

console.log(Math.max(...arr))    //  输出 9

2.数组中的sort方法通过排序,从小到大 最后一个就是最大值

var arr=[1,5,6,4,7,8,9,6,5];

arr.sort(function(a,b){

    return a-b;

})

console.log(arr[arr.length-1])  //  输出 9

3.以上是笔者当时面试说出来的 在下面笔者再拓展几种方法

使用 apply配置 Math.max 方法配合使用 和 扩展运算符 效果一样

var arr=[1,5,6,4,7,8,9,6,5];

console.log(Math.max.apply(null,arr));// 通过打散数组 传入 max方法

4.通过for循环 筛选出最大值 相信 学过c语言的 可能都见过这种方法

var arr=[1,5,6,4,7,8,9,6,5];

let max = arr[0];  //  先将第一个值认为是最大值

for (let i = 0; i < arr.length - 1; i++) {

    max = max < arr[i+1] ? arr[i+1] : max  // 依次跟后面的数组元素比较 大的就交换俩者数值  这里只求最大值

}

console.log(max)  //  输出 9

5.通过es6的累加器方法 reduce

var arr=[1,5,6,4,7,8,9,6,5];

// 这里的max相当于是一个累加容器  reduce方法 算是es6中新增数组api稍微理解难一点的方法

var max=arr.reduce((max, item) => {  //max初始值是 0  依次跟数组元素比较  大于的话 返回max

    return max > item ? max : item}    // 小于的话 返回 数组元素 最后就能返回出最大的那个数值了

)

console.log(max)

你可能感兴趣的:(数组取最大值)