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 相关文章推荐
Javascript学习笔记 delete运算符
Sep 13 Javascript
基于jquery库的tab新形式使用
Nov 16 Javascript
Array 重排序方法和操作方法的简单实例
Jan 24 Javascript
javascript中call apply 的应用场景
Apr 16 Javascript
jQuery根据表单name获取值的方法
May 24 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
Aug 15 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
Oct 14 Javascript
vue开发心得和技巧分享
Oct 27 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
Dec 12 Javascript
微信小程序 request接口的封装实例代码
Apr 26 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
公众号SVG动画交互实战代码
May 31 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
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
vue解决一个方法同时发送多个请求的问题
2018/09/25 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
[01:14]辉夜杯战队访谈宣传片—NEWBEE.Y
2015/12/26 DOTA
python提取包含关键字的整行数据方法
2018/12/11 Python
python实现共轭梯度法
2019/07/03 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
中专毕业生自我鉴定范文
2013/11/09 职场文书
竞职演讲稿范文
2014/01/11 职场文书
物流专业大学的自我评价
2014/01/11 职场文书
综合实践活动方案
2014/02/14 职场文书
《散步》教学反思
2014/03/02 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
反四风对照检查材料
2014/09/22 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
雾霾停课通知
2015/04/24 职场文书
高中历史教学反思
2016/02/19 职场文书
pytorch实现线性回归以及多元回归
2021/04/11 Python
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
Nginx的gzip相关介绍
2022/05/11 Servers
Vue router配置与使用分析讲解
2022/12/24 Vue.js