說一下個人認為最簡單的排序方式,.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()也是非常的方便,代碼及截圖如下:
感謝大家閱讀到最后,你們都是大神!
轉載請注明出處!