函数的应用求数组最大值或最小值
- 本案例考察知识点: 函数声明、函数调用、函数传参、函数返回值
需求:声明一个函数,求任意数组最大值并返回这个最大值
示例代码如下:
<script>
function getMax(arr) {
let max = arr[0]
for (let i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i]
}
}
return max
}
let res = getMax([20.30, 66, 88, 100])
console.log(res)
</script>
需求: 用函数求任意数组的最大值或者最小值
思路: 第一个参数: 数组 第二个参数:布尔类型 true:最大值 false:最小值
示例代码如下:
<script>
function getSum(arr, flog) {
if (flog) {
// 求最大值
let max = arr[0]
for (let i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i]
}
}
return max
} else {
// 求最小值
let min = arr[0]
for (let i = 1; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i]
}
}
return min
}
}
let res = getSum([20, 50, 66, 88, 120], true)
console.log(res)
let res1 = getSum([20, 50, 66, 88, 120], false)
console.log(res1)
</script>
或者用三元表达式来实现:
<script>
function getSum(arr, flag) {
let num = arr[0]
for (let i = 1; i < arr.length; i++) {
if (flag ? arr[i] > num : arr[i] < num) {
num = arr[i]
}
}
return num
}
let res = getSum([20, 50, 66, 88, 120], true)
console.log(res)
let res1 = getSum([20, 50, 66, 88, 120], false)
console.log(res1)
</script>
第三种比较难理解可以做为了解,代码量最少的一种方式
function getNum(arr, bol) {
let num = arr[0]
for(let i = 0;i<arr.length;i++){
/*
bol : true 求最大值 true == arr[i] > num
* 当bol为true的时候, arr[i]>num也为true
bol : false 求最小值 false == arr[i] > num
* 当bol为false的时候, arr[i]>num也为false ( arr[i]比num小才为false)
*/
if( bol == arr[i] > num ){
num = arr[i]
}
}
return num
}
let num1 = getNum([20, 55, 60, 88, 100], true)
console.log( num1 )
let num2 = getNum([20, 55, 60, 88, 100], false)
console.log( num2 )