查找数组中的最大值(最小值)及相对应的下标
简单的封装一个方法
假设数组 arr 中的最大值max或最小值min 为arr[0], 通过max或min与数组 arr 的值进行比较 ,得到想要的结果
(1)获取数组最大值(最小值)
//获取最大值
1 function getMax(arr) { 2 //假设最大值max 为arr[0] 3 var max = arr[0]; 4 //遍历对比 5 for (var i = 0; i < arr.length; i++) { 6 //若max小于当前项 说明不是最大值 将当前项的值赋予max 7 // 继续遍历对比找到最大的值 8 if (max < arr[i]) { 9 max = arr[i]; 10 } 11 } 12 return max; 13 }
//获取最小值
1 function getMin(arr) { 2 var min = arr[0]; 3 for (var i = 0; i < arr.length; i++) { 4 if (min > arr[i]) { 5 min = arr[i]; 6 } 7 } 8 9 return min; 10 }
(2)获取数组最大值(最小值)的下标
//获取最大值的下标
1 function getMaxIndex(arr) { 2 var max = arr[0]; 3 //声明了个变量 保存下标值 4 var index = 0; 5 for (var i = 0; i < arr.length; i++) { 6 if (max < arr[i]) { 7 max = arr[i]; 8 index = i; 9 } 10 } 11 return index; 12 }
//获取最小值的下标
1 function getMinIndex(arr) { 2 var min = arr[0]; 3 //声明了个变量 保存下标值 4 var index = 0; 5 for (var i = 0; i < arr.length; i++) { 6 if (min > arr[i]) { 7 min = arr[i]; 8 index = i; 9 } 10 } 11 return index; 12 }
注:获取数组最大值(最小值)的下标时,当数组中最大值(最小值)有重复项时,返回的index值为数组中第一个最大值(最小值)的下标
举个栗子:
1 var arr = [66,3,66,66,3]; 2 //打印结果 3 console.log(getMax(arr)); // 66 4 console.log(getMaxIndex(arr)); // 0 5 console.log(getMin(arr)); // 3 6 console.log(getMinIndex(arr)); // 1