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中的有名函数和无名函数
Oct 17 Javascript
使用jquery实现放大镜效果
Sep 02 Javascript
angular中使用路由和$location切换视图
Jan 23 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
Apr 26 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
Jun 16 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
Jun 20 Javascript
Vue实现百度下拉提示搜索功能
Jun 21 Javascript
使用JavaScript实现一个小程序之99乘法表
Sep 21 Javascript
vue中rem的配置的方法示例
Aug 30 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
Sep 14 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
Aug 12 Javascript
JavaScript实现贪吃蛇游戏
Jun 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
Syphon 秘笈
2021/03/03 冲泡冲煮
BBS(php &amp; mysql)完整版(三)
2006/10/09 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
2015/08/31 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
2020/08/06 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
js封装可使用的构造函数继承用法分析
2015/01/28 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
NodeJS使用七牛云存储上传文件的方法
2017/07/24 NodeJs
openlayers实现地图测距测面
2020/09/25 Javascript
Python实现把回车符\r\n转换成\n
2015/04/23 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
python区分不同数据类型的方法
2019/10/14 Python
Python常用编译器原理及特点解析
2020/03/23 Python
Django实现随机图形验证码的示例
2020/10/15 Python
python图片合成的示例
2020/11/09 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
工商管理实习自我鉴定
2013/09/28 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
2014年教师业务学习材料
2014/05/12 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
环卫个人总结
2015/03/03 职场文书
python+opencv实现目标跟踪过程
2022/06/21 Python
MySQL自定义函数及触发器
2022/08/05 MySQL