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 获取url参数和script标签中获取url参数函数代码
Jan 22 Javascript
JavaScript DOM学习第八章 表单错误提示
Feb 19 Javascript
node.js中的fs.rmdir方法使用说明
Dec 16 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
Oct 08 Javascript
JavaScript代码性能优化总结(推荐)
May 16 Javascript
微信小程序之MaterialDesign--input组件详解
Feb 15 Javascript
Vue实现一个返回顶部backToTop组件
Jul 25 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
Jul 07 Javascript
js实现图片推拉门效果代码实例
May 18 Javascript
React学习之受控组件与数据共享实例分析
Jan 06 Javascript
JS手写一个自定义Promise操作示例
Mar 16 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 Vue.js
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
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
php函数serialize()与unserialize()用法实例
2014/11/06 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
PHP多态代码实例
2015/06/26 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
jQueryUI的Dialog的简单封装
2010/06/07 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
2020/03/20 jQuery
详解ES6 CLASS在微信小程序中的应用实例
2020/04/24 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
[03:36]2014DOTA2 TI小组赛综述 八强诞生进军钥匙球馆
2014/07/15 DOTA
python 简易计算器程序,代码就几行
2009/08/29 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
使用Python处理BAM的方法
2018/09/28 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
计算机学生的自我评价分享
2014/02/18 职场文书
开学季活动策划方案
2014/02/28 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
个人投资计划书
2014/05/01 职场文书
课外访万家心得体会
2014/09/03 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
汽车转让协议书
2015/01/29 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP
vue+element ui实现锚点定位
2021/06/29 Vue.js