JavaScript中數(shù)組的排序、亂序和搜索實現(xiàn)代碼
更新時間:2011年11月30日 23:20:50 作者:
JavaScript中實現(xiàn)數(shù)組的排序、亂序和搜索,其實所有這些功能,用一個sort()就可以完成了
1. 排序:
默認的sort()按字符編碼排序的:
<script type="text/javascript">
<!--
var testArray=[3,324,5345,6546,134,5654,665];
testArray.sort();
alert(testArray);
//-->
</script>
現(xiàn)在要讓它按照數(shù)值大小排序:
<script type="text/javascript">
<!--
var testArray=[3,324,5345,6546,134,5654,665];
testArray.sort(function(a,b){return a-b;});
alert(testArray);
//-->
</script>
只要傳遞一個比較函數(shù)給sort就可以了,如果比較函數(shù)的值小于0,則表示a必須出現(xiàn)在b前面,否則在b后面。
2. 亂序:
讓比較函數(shù)隨機傳回-1或1就可以了:
<script type="text/javascript">
<!--
var testArray=[1,2,3,4,5,6,7,8,9,10,22,33,55,77,88,99];
testArray.sort(function(){return Math.random()>0.5?-1:1;});
alert(testArray);
//-->
</script>
3. 搜索:
用sort()來玩搜索還蠻新鮮的,呵呵,看看是怎么玩的吧。
我現(xiàn)在要把數(shù)組里含有字母'a'的元素全部找出來,如果沒有sort(),似乎只能用遍歷了,遍歷的效率…那個叫恐怖?。?!具體做法如下:
<script type="text/javascript">
<!--
var testArray=['df', 'rtr', 'wy', 'dafd', 'dfs', 'wefa', 'tyr', 'rty', 'rty', 'ryt', 'afds', 'wer', 'te'];
testArray.sort(function(a,b){return a.indexOf('a')==-1?1:-1;});
alert(testArray);
//-->
</script>
這樣就把數(shù)組中含有字母'a'的元素全部放到數(shù)組前面啦,再經過一些簡單的處理,就可以輸出搜索結果了。
以上是我總結的三種在javascript中用sort()操作數(shù)組的方法,如果你有興趣,你會發(fā)現(xiàn)sort()還有好多妙用呢……
默認的sort()按字符編碼排序的:
復制代碼 代碼如下:
<script type="text/javascript">
<!--
var testArray=[3,324,5345,6546,134,5654,665];
testArray.sort();
alert(testArray);
//-->
</script>
現(xiàn)在要讓它按照數(shù)值大小排序:
復制代碼 代碼如下:
<script type="text/javascript">
<!--
var testArray=[3,324,5345,6546,134,5654,665];
testArray.sort(function(a,b){return a-b;});
alert(testArray);
//-->
</script>
只要傳遞一個比較函數(shù)給sort就可以了,如果比較函數(shù)的值小于0,則表示a必須出現(xiàn)在b前面,否則在b后面。
2. 亂序:
讓比較函數(shù)隨機傳回-1或1就可以了:
復制代碼 代碼如下:
<script type="text/javascript">
<!--
var testArray=[1,2,3,4,5,6,7,8,9,10,22,33,55,77,88,99];
testArray.sort(function(){return Math.random()>0.5?-1:1;});
alert(testArray);
//-->
</script>
3. 搜索:
用sort()來玩搜索還蠻新鮮的,呵呵,看看是怎么玩的吧。
我現(xiàn)在要把數(shù)組里含有字母'a'的元素全部找出來,如果沒有sort(),似乎只能用遍歷了,遍歷的效率…那個叫恐怖?。?!具體做法如下:
復制代碼 代碼如下:
<script type="text/javascript">
<!--
var testArray=['df', 'rtr', 'wy', 'dafd', 'dfs', 'wefa', 'tyr', 'rty', 'rty', 'ryt', 'afds', 'wer', 'te'];
testArray.sort(function(a,b){return a.indexOf('a')==-1?1:-1;});
alert(testArray);
//-->
</script>
這樣就把數(shù)組中含有字母'a'的元素全部放到數(shù)組前面啦,再經過一些簡單的處理,就可以輸出搜索結果了。
以上是我總結的三種在javascript中用sort()操作數(shù)組的方法,如果你有興趣,你會發(fā)現(xiàn)sort()還有好多妙用呢……
相關文章
layui2.0使用table+laypage實現(xiàn)真分頁
這篇文章主要為大家詳細介紹了layui2.0使用table+laypage實現(xiàn)真分頁,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07JavaScript實現(xiàn)彈出模態(tài)窗體并接受傳值的方法
這篇文章主要介紹了JavaScript實現(xiàn)彈出模態(tài)窗體并接受傳值的方法,涉及JavaScript模態(tài)窗體的實現(xiàn)及基于URL的傳值操作技巧,需要的朋友可以參考下2016-02-02基于JS實現(xiàn)PHP的sprintf函數(shù)實例
這篇文章主要介紹了基于JS實現(xiàn)PHP的sprintf函數(shù)的方法,可實現(xiàn)JavaScript模擬PHPsprintf函數(shù)的輸出功能,涉及JavaScript字符串操作的相關技巧,需要的朋友可以參考下2015-11-11Javascript連接多個數(shù)組不用concat來解決
這篇文章主要介紹了不用concat解決Javascript連接多個數(shù)組,需要的朋友可以參考下2014-03-03使用純前端JavaScript實現(xiàn)Excel導入導出方法過程詳解
這篇文章主要介紹了使用純前端JavaScript實現(xiàn)Excel導入導出方法過程詳解,文章通過示例代碼和圖文解析介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08JavaScript實現(xiàn)讀取與輸出XML文件數(shù)據(jù)的方法示例
這篇文章主要介紹了JavaScript實現(xiàn)讀取與輸出XML文件數(shù)據(jù)的方法,結合實例形式分析了JavaScript基于ActiveXObject實現(xiàn)載入、讀取與輸出xml文件數(shù)據(jù)的相關操作技巧,需要的朋友可以參考下2018-06-06