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 28 Javascript
JavaScript判断一个URL链接是否有效的实现方法
Oct 08 Javascript
javascript动态加载二
Aug 22 Javascript
JS选项卡动态替换banner图片路径的方法
May 11 Javascript
jquery计算鼠标和指定元素之间距离的方法
Jun 26 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
Nov 02 Javascript
解决Angular.Js与Django标签冲突的方案
Dec 20 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
Feb 21 Javascript
微信小程序 wx.request方法的异步封装实例详解
May 18 Javascript
vue.js实现刷新当前页面的方法教程
Jul 05 Javascript
CryptoJS中AES实现前后端通用加解密技术
Dec 18 Javascript
node.js中path路径模块的使用方法实例分析
Feb 13 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显示MySQL数据的三种方法
2008/06/05 PHP
php中获得视频时间总长度的另一种方法
2011/09/15 PHP
php检测图片木马多进制编程实践
2013/04/11 PHP
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
2014/02/24 PHP
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
JavaScript中双叹号(!!)作用示例介绍
2014/04/10 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
python 实现客户端与服务端的通信
2020/12/23 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
经济与贸易专业应届生求职信
2013/11/19 职场文书
活动邀请函范文
2014/01/19 职场文书
党员自我批评与反省材料
2014/02/10 职场文书
国际会计专业求职信
2014/08/04 职场文书
开展党的群众路线教育实践活动总结报告
2014/10/31 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
Python实现Telnet自动连接检测密码的示例
2021/04/16 Python
mysql的数据压缩性能对比详情
2021/11/07 MySQL
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技