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()也是非常的方便,代码及截图如下:

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

    转载请注明出处!

  • 相关阅读:
    Candy leetcode java
    Trapping Rain Water leetcode java
    Best Time to Buy and Sell Stock III leetcode java
    Best Time to Buy and Sell Stock II leetcode java
    Best Time to Buy and Sell Stock leetcode java
    Maximum Subarray leetcode java
    Word Break II leetcode java
    Word Break leetcode java
    Anagrams leetcode java
    Clone Graph leetcode java(DFS and BFS 基础)
  • 原文地址:https://www.cnblogs.com/zxn-9588/p/8795625.html
Copyright © 2011-2022 走看看