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获取数组任意个不重复的随机数组元素
Mar 15 Javascript
探讨jQuery的ajax使用场景(c#)
Dec 03 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
Apr 08 Javascript
javascript操纵OGNL标签示例代码
Jun 16 Javascript
把Node.js程序加入服务实现随机启动
Jun 25 Javascript
基于jQuery实现Tabs选项卡自定义插件
Nov 21 Javascript
vue2.0 与 bootstrap datetimepicker的结合使用实例
May 22 Javascript
php 修改密码实现代码
May 24 Javascript
Angular实现可删除并计算总金额的购物车功能示例
Dec 26 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
Mar 27 Javascript
javascript定时器的简单应用示例【控制方块移动】
Jun 17 Javascript
vue el-tree 默认展开第一个节点的实现代码
May 15 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
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
php读取本地json文件的实例
2018/03/07 PHP
JavaScript window.location对象
2014/11/14 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
Move.js入门
2017/02/08 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
详解express与koa中间件模式对比
2017/08/07 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
vue弹窗组件使用方法
2018/04/28 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
对Python Pexpect 模块的使用说明详解
2019/02/14 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
python 实现图片批量压缩的示例
2020/12/18 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
校园歌咏比赛主持词
2014/03/18 职场文书
遗产继承公证书
2014/04/09 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python