老师你好,对于本章节的实操练习,求数组的最大值及最大值的下标这一题,为什么我用函数方法做和直接用for循环做其结果会不一样?对于第一种方法我觉得逻辑是通的,但是所求出来的却不是最大值:
<script>
//方式1
function getMax(arr){
// 假设数组中的第一个元素就是最大值
var max = arr[0];
//利用for循环求出最大值
for(var i in arr){
if(arr[i] > arr[0]) {
max = arr[i];
}
}
return max;
}
function getMaxIndex(arr) {
var max = arr[0];
var index = 0;
for(var i in arr) {
if(arr[i] > arr[0]) {
max = arr[i];
index = i;
}
}
return index;
}
var arr = [23,12,43,25,45,66,10,251,0,69];
console.log(getMax(arr)); // 69
console.log(getMaxIndex(arr)); // 9
//方式2
var arr = [23,12,43,25,45,66,10,251,0,69];
var max=arr[0];
var index=0;
for(var i in arr){
if (arr[i]>max) {
max=arr[i];
index=i;
}
}
console.log(max);//251
console.log(index);//7
</script>