问题:求 let arr = [9, 5, 2, 1, 4];
的最大值和最小值?
1.排序法
- 先把数组从大到小排序,数组第一个即为最大值,最后一个即为最小值
let arr = [9, 5, 2, 1, 4];
arr.sort(function(a,b){
return b-a;
})
console.log(arr);//(5) [9, 5, 4, 2, 1]
max = arr[0];
min = arr[arr.length-1];
console.log('最大值 '+max,'最小值 '+min);
2.字符串拼接法
- 利用toString和join把数组转换为字符串,再和Math的max和min方法分别进行拼接,最后执行eval方法
let arr = [9, 5, 2, 1, 4];
let max = eval('Math.max(' + arr.toString() + ')');
let min = eval('Math.min(' + arr.toString() + ')');
console.log('最大值 '+max,'最小值 '+min);
3.假设法
- 假设数组第一个为最大(或最小值),和后边进行比较,若后边的值比最大值大(或比最小值小),则替换最大值(或最小值)
let arr = [9, 5, 2, 1, 4];
let max = arr[0];
let min = arr[0];
for (let i = 1; i < arr.length; i++) {
let temp = arr[i];
temp > max ? (max = temp) : null;
temp < min ? (min = temp) : null;
}
console.log('最大值 ' + max, '最小值 ' + min);
4.Math的max和min方法
- 使用apply方法使数组可以作为传递的参数
let arr = [9, 5, 2, 1, 4];
let max = Math.max.apply(null, arr);
let min = Math.min.apply(null, arr);
console.log(max, min);
参考文章:求js数组的最大值和最小值的四种方法
网友评论