1. 循环遍历
const arr = [1, 4, 54, 6, 7, 6, 7, 87, 3, 6, 8, 6, 97, 0, 86, 5, 657, 4]
// 设定一个基准,以数组第一个元素为准
let max = arr[0]
let min = arr[0]
for (let i = 1
if (arr[i] > max) {
max = arr[i]
} else if (arr[i] < min) {
min = arr[i]
}
}
console.log(max, min)
2. 先排序,后直接取值
const arr = [1, 4, 54, 6, 7, 6, 7, 87, 3, 6, 8, 6, 97, 0, 86, 5, 657, 4];
// 先对数组进行排序,再取最大值和最小值(冒泡排序/快速排序/sort方法等)
// 这里使用数组的sort方法,它接收一个函数作为参数,这个函数本身接收两个参数a,b
// 其中a表示数组靠前的值,b表示数组靠后的值,也就是说,a不可能是4,b不可能是1
// 如果返回一个正值,则交换a,b,否则不交换
arr.sort(function (a, b) {
return a - b;// 只有当a>b,即前面的值大于后面的值,交换,也就是从小到大排序
});
const max = arr[arr.length - 1];
const min = arr[0];
console.log(max, min);
3. Math.max/min方法
const arr = [1, 4, 54, 6, 7, 6, 7, 87, 3, 6, 8, 6, 97, 0, 86, 5, 657, 4];
const max = Math.max.apply(null,arr);
const min = Math.min.apply(null,arr);
console.log(max, min);
const max = Math.max(...arr);
const min = Math.min(...arr);
console.log(max, min);
4. 数组的reduce方法
// 核心机制类似于第一种方法
const arr = [1, 4, 54, 6, 7, 6, 7, 87, 3, 6, 8, 6, 97, 0, 86, 5, 657, 4]
const max = arr.reduce(function (prev, cur) {
return cur > prev ? cur : prev
})
const min = arr.reduce(function (prev, cur) {
return cur < prev ? cur : prev
})
console.log(max, min)