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 相关文章推荐
JS应用之禁止抓屏、复制、打印
Feb 21 Javascript
Javascript学习笔记-详解in运算符
Sep 13 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
Mar 31 Javascript
在Ubuntu系统上安装Node.JS的教程
Oct 15 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
May 18 Javascript
webpack中引用jquery的简单实现
Jun 08 Javascript
AngularJS内建服务$location及其功能详解
Jul 01 Javascript
Angular2整合其他插件的方法
Jan 20 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
Nov 14 Javascript
vue中实现图片压缩 file文件的方法
May 28 Javascript
JavaScript实现滑块验证解锁
Jan 07 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
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
jquery自动切换tabs选项卡的具体实现
2013/12/24 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
深入理解bootstrap框架之入门准备
2016/10/09 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
js数组的基本使用总结
2021/01/18 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
设置python3为默认python的方法
2018/10/31 Python
Python列表对象实现原理详解
2019/07/01 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
python同时替换多个字符串方法示例
2019/09/17 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
成人毕业生自我鉴定
2013/10/18 职场文书
高中政治教学反思
2014/01/18 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
请假条范文大全
2014/04/10 职场文书
2014年材料员工作总结
2014/11/19 职场文书
先进工作者申报材料
2014/12/23 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电