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 相关文章推荐
cument.execCommand()用法深入理解
Dec 04 Javascript
javascript排序函数实现数字排序
Jun 26 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
Jul 25 Javascript
购物车前端开发(jQuery和bootstrap3)
Aug 27 Javascript
ReactJs快速入门教程(精华版)
Nov 28 Javascript
JavaScript实现倒计时跳转页面功能【实用】
Dec 13 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
Dec 24 Javascript
AngularJS实现根据不同条件显示不同控件
Apr 20 Javascript
Node.js  事件循环详解及实例
Aug 06 Javascript
javascript 开发之网页兼容各种浏览器
Sep 28 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
Apr 17 Javascript
js判断一个对象是数组(函数)的方法实例
Dec 19 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/10/09 PHP
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
关于php mvc开发模式的感想
2011/06/28 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
解析PHP 使用curl提交json格式数据
2013/06/29 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
event.srcElement 用法笔记e.target
2009/12/18 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
微信小程序 生成携带参数的二维码
2019/10/23 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
python批量创建指定名称的文件夹
2019/03/21 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
30行Python代码实现高分辨率图像导航的方法
2020/05/22 Python
CSS3 实现弹跳的小球动画
2020/10/26 HTML / CSS
面向对象编程OOP的优点
2013/01/22 面试题
西式婚礼证婚词
2014/01/12 职场文书
公司领导班子对照材料
2014/08/18 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书