zoukankan      html  css  js  c++  java
  • js数组排序、去重复、获取最大最小值

    说一下个人认为最简单的排序方式,.sort()方法,sort()方法的兼容性也很好,主流浏览器都支持,排序的方式是按照字符编码排序的,当然要把数组里的内容类型都统一,不然可比性很差。

    sort()方法是js Array对象的一种方法,用来对数组进行排序(升序/降序),默认的排序方式就是“按字母升序”,当然如果是要把字母按照降序的排列方式排列,那么单纯的sort()方法是实现不了的,先来demo1效果(字母升序):

    demo1代码:

    <p id="demo">默认的排序方式</p>
            <script>
                function myFunction(){
                    var fruits = ["Banana", "Orange", "Apple", "Mango"];
                    fruits.sort();
                    var x=document.getElementById("demo");
                    x.innerHTML=fruits;
                }
                myFunction();
            </script>

    有了升序,再来降序,demo2效果(字母降序):

    demo2代码:

    <p id="demo2">默认的排序方式</p>
            <script>
                function myFunction(){
                    var fruits = ["Banana", "Orange", "Apple", "Mango"];
                    fruits.sort();
                    fruits.reverse();
                    var x=document.getElementById("demo2");
                    x.innerHTML=fruits;
                }
                myFunction();
            </script>

    这里用到的方法就是reverse(),该方法的作用就是前后颠倒数组中的内容;如果是对数字进行排序的话,那么必须有一个函数参考,demo3(数组数字升序):

    demo3代码:

    <p id="demo3">默认的排序方式</p>
            <script>
                function sortFun (a,b) {
                    return a-b;
                }
                function myFunction(){
                    var fruits = [40,100,1,5,25,10];
                    fruits.sort(sortFun);
                    var x=document.getElementById("demo3");
                    x.innerHTML=fruits;
                }
                myFunction();
            </script>

    该myFunction()方法中用到的这个参考函数就是sortFun(),这个参数里面的两个形参a、b的作用就是判断a是否大于b(sort()方法里调用这个函数的时候,两个参数就是数组的从左到右取出的顺序),图如下(console.log打印图):

    简单的说就是三点:

    1、a>b,a排在b的后面

    2、a=b,a和b并列排

    3、a<b,a排在b的前面

    这样的话,数组的数字升序不就是实现了嘛,如果是降序呢,很简单,把a-b反过来写就好了嘛,这就相当于 2-1=1,反过来就是 1-2=-1,一正一负,方向不就是相反的嘛,demo4(数组数字降序):

    代码如下:

    <p id="demo4">默认的排序方式</p>
            <script>
                function sortFun (a,b) {
                    console.log(a,b);
                    return b-a;
                }
                function myFunction(){
                    var fruits = [40,100,1,5,25,10];
                    fruits.sort(sortFun);
                    var x=document.getElementById("demo4");
                    x.innerHTML=fruits;
                }
                myFunction();
            </script>

     当然你这降序和升序都弄好了,选取最大最小值就不用说了,(*^__^*) 嘻嘻……

    ****************************************************************************************

    怎样对数组里的元素去重复,这里呢个人认为最简单的方法就是用到js里的一个方法,那就是indexOf(),该方法的作用就是:查找指定字符串第一次出现的位置,如果没找到匹配的字符串则返回 -1。注意是=>>没有找到什么什么就返回“-1”,那么例子来了,demo5:

    代码:

    <p id="demo5">默认的排序方式</p>
            <script type="text/javascript">
                var arrA = [1,2,3,4,5,6,7,11,18,5,6,2,12],arrB = [],i = 0;
                for (; i<arrA.length; i++) {
                    if (arrB.indexOf(arrA[i]) == -1) {
                        arrB.push(arrA[i]);
                    }
                }
                var x=document.getElementById("demo5");
                x.innerHTML=arrB;
            </script>

    ** 如果数组包含的是对象列表,需求是对对象列表进行排序也是可以的,使用sort()也是非常的方便,代码及截图如下:

    感谢大家阅读到最后,你们都是大神!

    转载请注明出处!

  • 相关阅读:
    深度学习之TensorFlow(一)——基本使用
    64位win10+cuda8.0+vs2013+cuDNN V5下Caffe的编译安装教程并配置matlab2014a 接口
    Win10+vs2012+cuda8.0的安装与配置
    图像处理与matlab实例之图像平滑(一)
    Windows下pycharm使用theano的方法
    Python中的支持向量机SVM的使用(有实例)
    混淆矩阵在Matlab中PRtools模式识别工具箱的应用
    模式识别与机器学习—bagging与boosting
    微服务架构下分布式事务解决方案——阿里GTS
    谈谈分布式事务
  • 原文地址:https://www.cnblogs.com/zxn-9588/p/8795625.html
Copyright © 2011-2022 走看看