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 相关文章推荐
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
Nov 24 Javascript
js图片延迟加载的实现方法及思路
Jul 22 Javascript
jquery实现div拖拽宽度示例代码
Jul 31 Javascript
常用的几段javascript代码分享
Mar 25 Javascript
JavaScript面向对象之私有静态变量实例分析
Jan 14 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
Jun 10 Javascript
AngularJS入门教程之REST和定制服务详解
Aug 19 Javascript
Vue.js 中的 $watch使用方法
May 25 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
Jun 22 jQuery
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
Aug 12 Javascript
vue中轮训器的使用
Jan 27 Javascript
详解JQuery基础动画操作
Apr 12 jQuery
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和XSS跨站攻击的防范
2007/04/17 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
jquery选择器(常用选择器说明)
2010/09/28 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
javascript的push使用指南
2014/12/05 Javascript
浅谈javascript回调函数
2014/12/07 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
python executemany的使用及注意事项
2017/03/13 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
Sanic框架配置操作分析
2018/07/17 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
用Python+OpenCV对比图像质量的几种方法
2019/07/15 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
adidas美国官网:adidas US
2016/09/21 全球购物
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
大学生毕业鉴定
2014/01/31 职场文书
安全标准化汇报材料
2014/02/03 职场文书
出纳员岗位责任制
2014/02/11 职场文书
经济管理专业求职信
2014/06/09 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server