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

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

 

转载请注明出处!

转载于:https://www.cnblogs.com/zxn-9588/p/8795625.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值