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 框架使用教程 AJAX篇
Oct 11 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
Nov 12 Javascript
javaScript面向对象继承方法经典实现
Aug 20 Javascript
jQuery之选项卡的简单实现
Feb 28 Javascript
JavaScript数组随机排列实现随机洗牌功能
Mar 19 Javascript
Kindeditor在线文本编辑器如何过滤HTML
Apr 14 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
Dec 01 Javascript
Vue实现双向绑定的方法
Dec 22 Javascript
Javascript中数组去重与拍平的方法示例
Feb 03 Javascript
vue登录注册及token验证实现代码
Dec 14 Javascript
Postman的下载及安装教程详解
Oct 16 Javascript
JavaScript设计模式之命令模式实例分析
Jan 16 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 数据库树的遍历方法
2009/02/06 PHP
关于PHP5 Session生命周期介绍
2010/03/02 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
脚本之家贴图转换+转贴工具用到的js代码超级推荐
2007/04/05 Javascript
js 省地市级联选择
2010/02/07 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
javascript动画浅析
2012/08/30 Javascript
jQuery实现长文字部分显示代码
2013/05/13 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
js实现股票实时刷新数据案例
2017/05/14 Javascript
js封装成插件_Canvas统计图插件编写实例
2017/09/12 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
[01:28:56]2014 DOTA2华西杯精英邀请赛 5 24 CIS VS DK
2014/05/26 DOTA
让python在hadoop上跑起来
2016/01/27 Python
python编程实现希尔排序
2017/04/13 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
Python变量访问权限控制详解
2019/06/29 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
.NET程序员的数据库面试题
2012/10/10 面试题
文秘专业个人求职信
2013/12/22 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
2015年工商所工作总结
2015/05/21 职场文书
Python中X[:,0]和X[:,1]的用法
2021/05/10 Python
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers
TS 类型兼容教程示例详解
2022/09/23 Javascript