求一数组里面的最大值和最小值且打印出他们的各自下标

最近学习了关于数组的这块内容,记录下求一数组里面的最大值且打印出他的下标这个解题思路: 方法一 :设置一个值,将这个值与数组里面的值进行比较

//首先给定一个数组:
  let arr = [12, 4213, 43, 53, 53];

  //对数组进行遍历
  let maxVal = arr[0]; //设置默认最大值为arr[0],这是为了保证这个值就在数组arr里面
  let indexMax = 0; //什么最大值的默认下标
  let minVal = arr[1];
  let indexMin = 0;
  for (let i = 0; i < arr.length; i++) {
    if (maxVal < arr[i]) {
      maxVal = arr[i]; //将maxVal与arr里面的每个数值做出判断,若maxVal < 某个值,则将这个值赋值给maxVaal,如此反复直到maxVal最大为止
      indexMax = i; //将最大值的i赋值给index
    } else if (minVal > arr[i]) {
      minVal = arr[i];
      console.log(minVal);
      indexMin = i;
    }
  }

  console.log(maxVal, indexMax, minVal, indexMin); //打印出结果


方法二:利用扩展运算符 ...

//首先还是给定个数组
  let arr = [12, 4213, 43, 53, 53];
  let maxVal = Math.max(...arr); //获取数组最大值
  let minVal = Math.min(...arr); //获取数组最小值

  //遍历数组arr,将刚刚获取的最大值和最小值与里面的数值作比较
  let indexMax = 0; //定义最小值位于数组中的下标
  let indexMin = 0; //定义最大值位于数组中的下标
    
  for (let i = 0; i < arr.length; i++) {
    maxVal == arr[i] ? indexMax = i : ''
    minVal == arr[i] ? indexMin = i : ''
  }

  //打印结果
  console.log(maxVal, indexMax, minVal, indexMin);

目前就想到这两个方法,后续有的话再增加。大家觉得这2个方法如何?评论区告诉我。