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 相关文章推荐
图片自动缩小 点击放大
Jul 07 Javascript
jQuery 使用个人心得
Feb 26 Javascript
Mootools 1.2教程(3) 数组使用简介
Sep 14 Javascript
jquery图片放大功能简单实现
Aug 01 Javascript
json的使用小结
Jun 08 Javascript
confirm确认对话框的实现方法总结
Jun 17 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
Nov 07 Javascript
Vue.JS入门教程之列表渲染
Dec 01 Javascript
vue生命周期的探索
Apr 03 Javascript
JavaScript实现Excel表格效果
Feb 07 Javascript
原生JS实现音乐播放器
Jan 26 Javascript
JavaScript的function函数详细介绍
Nov 20 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中对用户身份认证实现两种方法
2011/06/04 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
2013/07/08 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
JS创建Tag标签的方法详解
2017/06/09 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
跟老齐学Python之类的细节
2014/10/13 Python
详细介绍Python函数中的默认参数
2015/03/30 Python
Python itertools模块详解
2015/05/09 Python
Python中使用strip()方法删除字符串中空格的教程
2015/05/20 Python
Python实现多线程抓取妹子图
2015/08/08 Python
Python实现的密码强度检测器示例
2017/08/23 Python
Python安装Flask环境及简单应用示例
2019/05/03 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
Python远程开发环境部署与调试过程图解
2019/12/09 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
公益广告宣传方案
2014/02/28 职场文书
教师产假请假条
2014/04/10 职场文书
社区矫正工作方案
2014/06/04 职场文书
小学雷锋月活动总结
2014/07/03 职场文书
党支部组织生活会整改方案
2014/09/30 职场文书
2014幼儿园卫生保健工作总结
2014/12/05 职场文书