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 相关文章推荐
jQuery 源代码显示控件 (Ajax加载方式).
May 18 Javascript
JQuery 表格操作(交替显示、拖动表格行、选择行等)
Jul 29 Javascript
raphael.js绘制中国地图 地图绘制方法
Feb 12 Javascript
不同编码的页面表单数据乱码问题解决方法
Feb 15 Javascript
JavaScript中的setMilliseconds()方法使用详解
Jun 11 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
Mar 07 Javascript
jQuery获取Table某列的值(推荐)
Mar 03 Javascript
JS实现按钮添加背景音乐示例代码
Oct 17 Javascript
Vue+SpringBoot开发V部落博客管理平台
Dec 27 Javascript
vue实现底部菜单功能
Jul 24 Javascript
关于Vue项目跨平台运行问题的解决方法
Sep 18 Javascript
微信小程序如何利用getCurrentPages进行页面传值
Jul 01 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 模拟POST提交的2种方法详解
2013/06/17 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
javascript中不等于的代码是什么怎么写
2013/12/29 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
JavaScript创建对象的七种方式全面总结
2017/08/21 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
vue生命周期实例小结
2018/08/15 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
python 线程的暂停, 恢复, 退出详解及实例
2016/12/06 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
详解Pymongo常用查询方法总结
2021/01/29 Python
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
使用layui实现左侧菜单栏及动态操作tab项的方法
2020/11/10 HTML / CSS
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
《尊严》教学反思
2014/02/11 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
介绍信范文大全
2015/05/07 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
nginx共享内存的机制详解
2022/03/21 Servers