说一下个人认为最简单的排序方式,.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()也是非常的方便,代码及截图如下:
感谢大家阅读到最后,你们都是大神!
转载请注明出处!