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实现动态增加文件域表单
Feb 12 Javascript
Jquery拖拽并简单保存的实现代码
Nov 28 Javascript
javascript的内存管理详解
Aug 07 Javascript
js arguments,jcallee caller用法总结
Nov 30 Javascript
jQuery级联操作绑定事件实例
Sep 02 Javascript
省市区三级联动jquery实现代码
Apr 15 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
Dec 14 Javascript
求js数组的最大值和最小值的四种方法
Mar 03 Javascript
分析JS单线程异步io回调的特性
Dec 01 Javascript
jQuery实现获取动态添加的标签对象示例
Jun 28 jQuery
layui实现给某一列加点击事件
Oct 26 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
Jul 09 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
2006/12/23 PHP
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
2014/09/01 Javascript
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
使用Python对Access读写操作
2017/03/30 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
Python常用外部指令执行代码实例
2020/11/05 Python
eDreams澳大利亚:预订机票、酒店和度假产品
2017/04/19 全球购物
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
外贸业务员的岗位职责
2013/11/23 职场文书
优秀大学生职业生涯规划书
2014/02/27 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
校园文明倡议书
2014/05/16 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
管理失职检讨书范文
2015/05/05 职场文书