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


Posted in Javascript onNovember 30, 2011

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()还有好多妙用呢……
Javascript 相关文章推荐
jQuery父级以及同级元素查找介绍
Sep 04 Javascript
JS获取键盘上任意按键的值(实例代码)
Nov 12 Javascript
node.js中的fs.writeFileSync方法使用说明
Dec 14 Javascript
省市联动效果的简单实现代码(推荐)
Jun 06 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
Jun 12 Javascript
vue2.0在table中实现全选和反选的示例代码
Nov 04 Javascript
JS实现图片旋转动画效果封装与使用示例
Jul 09 Javascript
学习node.js 断言的使用详解
Mar 18 Javascript
mock.js模拟前后台交互
Jul 25 Javascript
详解使用JWT实现单点登录(完全跨域方案)
Aug 02 Javascript
在vue中动态添加class类进行显示隐藏实例
Nov 09 Javascript
基于JavaScript实现猜数字游戏代码实例
Jul 30 Javascript
js常用代码段整理
Nov 30 #Javascript
firebug的一个有趣现象介绍
Nov 30 #Javascript
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
Nov 30 #Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
Nov 30 #Javascript
chrome原生方法之数组
Nov 30 #Javascript
使用Javascript接收get传递的值的代码
Nov 30 #Javascript
关于递归运算的顺序测试代码
Nov 30 #Javascript
You might like
火车头采集器3.0采集图文教程
2007/03/17 PHP
用PHP程序实现支持页面后退的两种方法
2008/06/30 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
2010/12/12 PHP
sae使用smarty模板的方法
2013/12/17 PHP
php取得字符串首字母的方法
2015/03/25 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
WEB高性能开发之疯狂的HTML压缩
2010/06/19 Javascript
原生js实现秒表计时器功能
2017/02/16 Javascript
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
JavaScript实现鼠标移入随机变换颜色
2020/11/24 Javascript
python逐行读取文件内容的三种方法
2014/01/20 Python
Python之eval()函数危险性浅析
2014/07/03 Python
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
荷兰超市:DEEN
2018/03/14 全球购物
国贸专业个人求职信范文
2014/01/08 职场文书
中青班党性分析材料
2014/02/16 职场文书
文化与传播毕业生求职信
2014/03/09 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
学习“七一”讲话精神体会
2014/07/08 职场文书
物流管理专业推荐信
2014/09/06 职场文书
材料采购员岗位职责
2015/04/03 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
MySQL数据库表约束讲解
2022/06/21 MySQL