JavaScript 查找数组中最小值和最大值
查找最小值
方法1. Math.min.apply(Math,arr)
function min(target){
return Math.min.apply(Math,target)
}
console.log(min([1,2,3]))
Math.min()返回给定数值的最小值,如果不是数值则返回NaN。
因为Math.min方法不支持直接传入一个数组,必须一个个参数传入,所以就有了Math.min.apply(this, args); aplly接受两个参数,第一个参数为指定当前函数调用时的this值。
这里第一个参数不重要,第二个参数为数组 ,调用函数时这个数组里的每个元素都会被当成参数传入该函数,也就是相当于把这个数组里所有的元素都传入了 Math.min() 方法。
方法2. 循环
function min(target){
let min = arr[0];
for (let i = 0; i < target.length - 1; i++) {
min= min< target[i+1] ? min: target[i+1]
}
}
方法3.利用ES6的拓展运算符
Math.min(...target)
方法4 sort
arr.sort((num1, num2) => { return num1 - num2 > 0 }) return arr[0]
方法5 reduce
arr.reduce(
(num1,num2)=>{
return num1 > num2 ? num2 : num1
}
)
查找最大值
方法1. Math.max.apply(Math,arr)
function max(target){
return Math.max.apply(Math,target)
}
console.log(min([1,2,3]))
方法2 ES6拓展运算符
Math.max(...target)
方法3 循环
let max = arr[0];
for (let i = 0; i < arr.length - 1; i++) {
max = max < arr[i+1] ? arr[i+1] : max
}
方法4 sort
arr.sort((num1, num2) => { return num1 - num2 < 0 }) return arr[0]
方法5 reduce
arr.reduce((num1, num2) => { return num1 > num2 ? num1 : num2} )
还没有评论,来说两句吧...