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 相关文章推荐
node.js中的fs.fchmodSync方法使用说明
Dec 16 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
Sep 06 Javascript
深入理解JS继承和原型链的问题
Dec 17 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
Jan 04 Javascript
利用策略模式与装饰模式扩展JavaScript表单验证功能
Feb 14 Javascript
深入理解JavaScript继承的多种方式和优缺点
May 12 Javascript
Angular在模板驱动表单中自定义校验器的方法
Aug 09 Javascript
JSON创建键值对(key是中文或者数字)方式详解
Aug 24 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
Jul 11 Javascript
微信小程序使用npm支持踩坑
Nov 07 Javascript
vue实现移动端省市区选择
Sep 27 Javascript
微信小程序连续签到7天积分获得功能的示例代码
Aug 20 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
深入PHP中的HashTable结构详解
2013/06/13 PHP
discuz目录文件资料汇总
2014/12/30 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
2016/03/02 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
2017/07/26 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
Promise.all中对于reject的处理方法
2018/08/01 Javascript
javascript中的this作用域详解
2019/07/15 Javascript
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
python清除字符串里非数字字符的方法
2015/07/02 Python
django实现前后台交互实例
2017/08/07 Python
python安装Scrapy图文教程
2017/08/14 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
python的移位操作实现详解
2019/08/21 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
Python生成词云的实现代码
2020/01/14 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
Python接口自动化测试框架运行原理及流程
2020/11/30 Python
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
安全检查与奖惩制度
2014/01/23 职场文书
销售员求职个人的自我评价
2014/02/19 职场文书
应届毕业生自荐信
2014/05/28 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
市场督导岗位职责
2015/04/10 职场文书
英文辞职信范文
2015/05/13 职场文书
毕业证明书
2015/06/19 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
广告文案的撰写技巧(实用干货)
2019/08/23 职场文书