• javascript中数组比较大小方法


    javascript中数组取最大值和最小值

    1、排序法

    我们给数组进行排序,可以按照从小到大的顺序来排,排序之后的数组中第一个和最后一个就是我们想要获取的最小值和最大值。排序我们会用到数组的 sort 方法。

    var arr = [12,56,25,5,82,51,22];
    
    arr.sort(function (a, b) {
      return a-b;
    }); // [5,12,22,25,51,56]
    
    var min = arr[0];  // 5
    
    var max = arr[arr.length - 1];  // 56

    2.假设法

    假设当前数组中的第一个值是最大值,然后拿这个最大值和后面的项逐一比较,如果后面的某一个值比假设的值还大,说明假设错了,我们把假设的值进行替换。最后得到的结果就是我们想要的。

    // 获取最大值:
    
    var arr = [22,13,6,55,30];
    var max = arr[0];
    
    for(var i = 1; i < arr.length; i++) {
       var cur = arr[i];
       cur > max ? max = cur : null
    }
    
    console.log(max); // 55
    
    // 获取最小值:
    
    var arr = [22,13,6,55,30];
    var min = arr[0];
    
    for(var i = 1; i < arr.length; i++) {
      var cur = arr[i];
      cur < min ? min = cur : null
    }
    console.log(min)  // 6

    3. 使用 Math 中的 max/min 方法

    可以使用apply来实现。apply传入的是一个数组。

    var arr = [22,13,6,55,30];
    
    var max = Math.max.apply(null, arr);
    var min = Math.min.apply(null, arr);
    
    console.log(max, min) // 55,6

    4、使用ES6的扩展运算符

     //ES5 取数组最大值
    console.log(Math.max.apply(this, [654, 233, 727]));
    //ES6 扩展运算符
    console.log(Math.max(...[654, 233, 727]))
    //相当于
    console.log(Math.max(654, 233, 727))

    排序对象数组

    // 比较年份
    var
    cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010}];
    cars.sort(function(a, b){return a.year - b.year});

    //比较字符串

    cars.sort(function(a, b){
    	  var x = a.type.toLowerCase();
    	  var y = b.type.toLowerCase();
    	  if (x < y) {return -1;}
    	  if (x > y) {return 1;}
    	  return 0;
    });

    以随机顺序排序数组

    var points = [40, 100, 1, 5, 25, 10];
    points.sort(function(a, b){return 0.5 - Math.random()}); 
  • 相关阅读:
    Git 进阶学习
    My SQL 学习打卡 60天搞定mysql
    设计模式 学习笔记
    docker 从入门到精通
    java 异步线程下的顺序控制
    Maven 工程 如何添加 oracle 驱动 问题
    Hive 2.1.1 学习笔记
    Linux 下 MySQL-5.6.16 安装
    hadoop2.x HDFS HA linux环境搭建
    [LC] 1146. Snapshot Array
  • 原文地址:https://www.cnblogs.com/ddqyc/p/11777226.html
Copyright © 2020-2023  润新知