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 相关文章推荐
Prototype Selector对象学习
Jul 23 Javascript
js中匿名函数的N种写法
Sep 08 Javascript
js如何取消事件冒泡
Sep 23 Javascript
关于js内存泄露的一个好例子
Dec 09 Javascript
js实现select二级联动下拉菜单
Apr 17 Javascript
Node.js的基本知识简单汇总
Sep 19 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
May 20 jQuery
基于JavaScript表单脚本(详解)
Oct 18 Javascript
vue-cli webpack 引入swiper的操作方法
Sep 15 Javascript
基于Webpack4和React hooks搭建项目的方法
Feb 05 Javascript
koa2 从入门到精通(小结)
Jul 23 Javascript
浅析VUE防抖与节流
Nov 24 Vue.js
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
一个用mysql_odbc和php写的serach数据库程序
2006/10/09 PHP
php下实现折线图效果的代码
2007/04/28 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
总结一些js自定义的函数
2006/08/05 Javascript
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
JavaScript入门之对象与JSON详解
2011/10/21 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
2016/08/03 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
2020/05/25 Javascript
小程序实现上传视频功能
2020/08/18 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
Vue 修改网站图标的方法
2020/12/31 Vue.js
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
[59:42]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python实现beta分布概率密度函数的方法
2019/07/08 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
英国乡村时尚和宠物用品专家:Pet & Country
2018/07/02 全球购物
什么是命名空间(NameSpace)
2015/11/24 面试题
结婚保证书范文
2014/04/29 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
银行先进个人总结
2015/02/15 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
上课迟到检讨书范文
2015/05/06 职场文书
拔河比赛新闻稿
2015/07/17 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
pytorch 实现多个Dataloader同时训练
2021/05/29 Python
教你如何使用Python Tkinter库制作记事本
2021/06/10 Python
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle