js數組元素由小到大排序實例代碼:有時候需要對數組中的數字進行排序,下麵是一段將數組中數字由小到大排序的代碼實例,希望能夠幫到大家。實例代碼如下:var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98];var len=arr.length;console...
js數組元素由小到大排序實例代碼:
有時候需要對數組中的數字進行排序,下麵是一段將數組中數字由小到大排序的代碼實例,希望能夠幫到大家。
實例代碼如下:
var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98]; var len=arr.length; console.log(arr.join(",")); var newarr=[]; for(var i=0;i<len;i++){ newarr.push(Math.min.apply(null,arr)); arr.splice(r(arr,Math.min.apply(null,arr)),1); } //找到最小值在數組中的位置 function r(s,v){ for(k in s){ if(s[k]==v){ return k; } } } console.log(newarr.join(","))
以上代碼實現排序要求,下麵簡單介紹一下它的實現過程。
一.實現原理:
代碼簡單,原理也比是如此。就是創建一個新的數組newarr,然後使用使用Math.min.apply()獲取原數組中的最小值,並將這個值放入新的數組,然後再刪除元素中的這個最小值,這樣旺夫迴圈,就實現了此功能,具體參看代碼註釋。
二.代碼註釋:
1.var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98],創建一個數組。
2.var len=arr.length,將數組的長度賦值給變數len。
3.console.log(arr.join()),返回由數組元素組成的字元串,字元串以逗號分隔。
4.var newarr=[],創建一個空數組。
5.for(var i=0;i<len;i++){},遍曆數組中的元素。
6.newarr.push(Math.min.apply(null,arr)),將數組arr中的最小值放入新的數組newarr。
7.arr.splice(r(arr,Math.min.apply(null,arr)),1),刪除arr數組中的最小值。
8.function r(s,v){},此函數可以返回數組中指定元素的索引,參數s是數組,參數v是數組中的一個值。
9.for(k in s){},遍曆數組中的元素。
10.if(s[k]==v){ return k;},如果傳入的值等於相應索引數組元素的值,就返回這個索引K。
11.console.log(newarr.join(","))輸出新數組元素。
三.相關閱讀:
1.join()函數可以參閱javascript的Array對象的join()方法一章節。
2.push()函數可以參閱JavaScript的Array對象的push()方法一章節。
3.Math.min()函數可以參閱javascript的Math.min()方法一章節。
4.apply()函數可以參閱javascript的call()和apply()的作用和區別一章節。
5.splice()函數可以參閱javascript的Array對象的splice()方法一章節。
原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9381
更多內容可以參閱:http://www.softwhy.com/javascript/