三道前端面试代码题

1.给定一个整数数组,找到其中最大和最小的整数并返回其差值。

<script>
    var arr = [12, 14, 34, 42, 64, 89]
    var max = min = arr[0]
    for (var i = 0; i < arr.length; i++) {
      if (arr[i] > max) {
        max = arr[i]
      } else if (arr[i] < min) {
        min = arr[i]
      }
    }
    //最大值,最小值,两数之差
    console.log(max, min, (max - min));

  </script>

2.给定一个整数数组,找到差值最大的两个相邻整数并返回该差值。

 <script>
    var arr = [89, 12, 14, 34, 42, 61, 13]
    var maxArr = function (arr) {
      if (arr.length < 2 || arr == null) {
        return 0
        // 表示数组长度不足两个,没法比较的时候
      }
      // 
      arr.sort((a, b) => a - b)
      //  对数组进行升序处理
      let max = arr[1] - arr[0]
      //升序后使用数组索引为1的减去索引为0的然后赋值给变量max为初始值
      for (var i = 0; i < arr.length - 1; i++) {
        //返回数组相邻元素最大差值
        max = Math.max(arr[i + 1] - arr[i])
      }
      return max
    }
    //调用打印
    console.log(maxArr(arr));
  </script>

3.判断当前系统时间是否处于21:10至23:30之间。

<script>
    var times = function (startTime, endTime) {
      var start = startTime.split(":");

      if (start.length != 2) {
        return false;
      }

      var end = endTime.split(":");
      if (end.length != 2) {
        return false;
      }
      //  定义开始时间
      var s = new Date();
      //  结束时间
      var e = new Date();
      //现在时间
      var n = new Date();

      //将分割的数字设置为有效小时值,下面三个同理
      s.setHours(start[0]);
      s.setMinutes(start[1]);
      e.setHours(end[0]);
      e.setMinutes(end[1]);
      //  此时的s代表的传入的参数开始时间,e结束时间,n当前系统时间
      if (n.getTime() - s.getTime() > 0 && n.getTime() - e.getTime() < 0) {
        alert("当前时间是:" + n.getHours() + ":" + n.getMinutes() + ",在该时间范围内!");
        return;
      } else {
        alert("当前时间是:" + n.getHours() + ":" + n.getMinutes() + ",不在该时间范围内!");
        return;
      }
    }
    times("21:10", "23:30");
  </script>

猜你喜欢

转载自blog.csdn.net/qq_72760247/article/details/128710632