JavaScript中数组的排序、乱序和搜索实现代码


1. 排序:
默认的sort()按字符编码排序的:

复制代码 代码如下:

<script type="text/javascript">
<!--
var testArray=[3,324,5345,6546,134,5654,665];
testArray.sort();
alert(testArray);
//-->
</script>

现在要让它按照数值大小排序:
复制代码 代码如下:

<script type="text/javascript">
<!--
var testArray=[3,324,5345,6546,134,5654,665];
testArray.sort(function(a,b){return a-b;});
alert(testArray);
//-->
</script>

只要传递一个比较函数给sort就可以了,如果比较函数的值小于0,则表示a必须出现在b前面,否则在b后面。

2. 乱序:
让比较函数随机传回-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()来玩搜索还蛮新鲜的,呵呵,看看是怎么玩的吧。
我现在要把数组里含有字母'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>

这样就把数组中含有字母'a'的元素全部放到数组前面啦,再经过一些简单的处理,就可以输出搜索结果了。
以上是我总结的三种在javascript中用sort()操作数组的方法,如果你有兴趣,你会发现sort()还有好多妙用呢……



相关阅读:
JSP入门初级教程之Taglib Directiv
MySQL数据库配置技巧
CSS网页实例:斜角滑动门导航条
Wordpress博客防评论机器人
用一套论坛程序架设多个论坛
鼠标划过时整行变色
PHP代码实例:图片转成HTML
JavaScript实现页面内容在设定时间后消失
json 入门基础教程 推荐
DOS批处理之DATE命令的使用方法详解
apache的keepalive和keepalivetimeout
JDBCTM 指南:入门5 - ResultSet
PHP+DBM的同学录程序(2)
Javascript初学者实例教程(10):图像属性
快速导航

Copyright © 2016 phpStudy |