javascript 数组排序函数sort和reverse使用介绍


Posted in Javascript onNovember 21, 2013

首先我们先说一下reverse方法。

reverse 方法将一个 Array 对象中的元素位置进行反转。在执行过程中,这个方法并不会创建一个新的 Array 对象。

例如:

var array1 = ['a','cc','bb','hello',false,0,3]; 
var array2 = [3,5,2,1,7,9,10,13]; 
array1.reverse(); 
array2.reverse(); 
alert(array1); 
alert(array2);

如果数组中只包含数字,那么数字将降序排列,如果数组中还包含其他类型,就将数组反转并返回数组。

sort 方法

返回一个元素已经进行了排序的 Array 对象。

arrayobj.sort(sortfunction)

参数

arrayObj

必选项。任意 Array 对象。

sortFunction

可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。

sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。

如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:

负值,如果所传递的第一个参数比第二个参数小。
零,如果两个参数相等。
正值,如果第一个参数比第二个参数大。

例1:()

var a, l; // 声明变量。 
a = ["X" ,"y" ,"d", "Z", "v","m","r",false,0]; 
l = a.sort(); // 排序数组。 
alert(l); // 返回排序的数组。

这个例子里没有传入比较函数那么元素将按照 ASCII 字符顺序进行升序排列,另外这个数组中包含了多种类型的数据,所以即使传入了比较函数,它依然按照ASCII 字符顺序进行升序排列。

例如

var a, l; // 声明变量。 
a = ["X" ,"y" ,"d", "Z", "v","m","r",false,0]; 
l = a.sort(); // 排序数组。 
alert(l); // 返回排序的数组。 
ll = a.sort(compack); 
alert(ll);//返回与上面一样 
function compack(a,b){ 
return a-b; 
}

当我们需要对数字排序的时候可以使用sort方法,只要给它传入一个比较函数就可以轻松的升序和降序。

升序:

var a, l; // 声明变量。 
a = [6,8,9,5.6,12,17,90]; 
l = a.sort(compack); // 排序数组。 
alert(l); // 返回排序的数组。 function compack(a,b){ 
return a-b; 
}

降序:
var a, l; // 声明变量。 
a = [6,8,9,5.6,12,17,90]; 
l = a.sort(compack); // 排序数组。 
alert(l); // 返回排序的数组。 function compack(a,b){ 
return b-a; 
}

在比较函数里升序返回a-b,降序返回b-a。
Javascript 相关文章推荐
JavaScript 常见对象类创建代码与优缺点分析
Dec 07 Javascript
js函数setTimeout延迟执行的简单介绍
Jul 17 Javascript
jquery 追加tr和删除tr示例代码
Sep 12 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
Dec 14 Javascript
jquery实现对联广告的方法
Feb 05 Javascript
浅谈js数据类型判断与数组判断
Aug 29 Javascript
Ajax 加载数据 练习代码
Jan 05 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
Feb 20 Javascript
vue-hook-form使用详解
Apr 07 Javascript
jQuery实现简单的下拉菜单导航功能示例
Dec 07 jQuery
手把手带你封装一个vue component第三方库
Feb 14 Javascript
原生JS实现图片懒加载之页面性能优化
Apr 26 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
Nov 21 #Javascript
js获取对象为null的解决方法
Nov 21 #Javascript
tangram框架响应式加载图片方法
Nov 21 #Javascript
使图片旋转的3种解决方案
Nov 21 #Javascript
js单例模式详解实例
Nov 21 #Javascript
Ajax同步与异步传输的示例代码
Nov 21 #Javascript
jquery与prototype框架的详细对比
Nov 21 #Javascript
You might like
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
php缓冲输出实例分析
2015/01/05 PHP
PHP两种快速排序算法实例
2015/02/15 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
浅析node.js中close事件
2014/11/26 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
JavaScript中调用函数的4种方式代码实例
2015/07/08 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
Angular2入门教程之模块和组件详解
2017/05/28 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
Javascript实现异步编程的过程
2018/06/18 Javascript
angular6开发steps步骤条组件
2019/07/04 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
跟老齐学Python之用while来循环
2014/10/02 Python
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
python绘制彩虹图
2019/12/16 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
Python中内建模块collections如何使用
2020/05/27 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
结婚典礼证婚词
2014/01/08 职场文书
小学生新学期寄语
2014/01/19 职场文书
教师产假请假条
2014/04/10 职场文书
横店影视城导游词
2015/02/06 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书