JS中数组重排序方法


Posted in Javascript onNovember 11, 2016

1.数组中已存在两个可直接用来重排序的方法:reverse()和sort()。

reverse()和sort()方法的返回值是经过排序后的数组。reverse()方法会反转数组项的顺序:

var values=[1,2,3,4,5];
values.reverse();
alert(values); //5,4,3,2,1

在默认情况下,sort()方法按升序排列数组,sort()方法会调用每个数组项的toString()转型方法,然后比较得到字符串,确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串:

var values = [0,1,5,10,15];
values.sort();
alert(values); //0,1,10,15,5

因此,sort()方法可以接收一个比较函数作为参数。

function compare(value1,value2){
if (value1 < value2){
return -1;
}else if (value1 > value2){
return 1;
}else{
return 0;
}
}

此比较函数可适用于大多数数据类型,只要将其作为参数传递给sort()方法即可:

var values = [0,1,3,7,9,15];
values.sort(compare);
alert(values); //0,1,3,7,9,15

也可通过比较函数产生降序排序,只需交换函数返回值即可:

function compare (value1, value2){
if (value1<value2){
return 1;
}else if {
return -1;
}else{
return 0;
}
}

sort()函数的排序条件是:

参数大于0,arr的相邻两个元素交换位置;

参数小于0,arr的相邻两个元素不交换位置;

参数等于0,arr的相邻两个元素大小相等;所以compare自定义函数必须返回一个数值。

2.对于数值类型或者valueOf()方法会返回数值类型的对象类型。

可使用一个更简单的比较函数。此函数只要第二个值减第一个值即可。

function compare (value1,value2){
return value2 - value1;
}

以上所述是小编给大家介绍的JS中数组重排序方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
Mar 21 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
Nov 06 Javascript
深入理解javascript中的立即执行函数(function(){…})()
Jun 12 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
Jun 13 Javascript
利用Node.js制作爬取大众点评的爬虫
Sep 22 Javascript
从零学习node.js之详解异步控制工具async(八)
Feb 27 Javascript
原生js实现轮播图
Feb 27 Javascript
Angular弹出模态框的两种方式
Oct 19 Javascript
微信小程序实现手指触摸画板
Jul 09 Javascript
Vue 子组件与数据传递问题及注意事项
Jul 11 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
Dec 12 Javascript
使用JavaScript计算前一天和后一天的思路详解
Dec 20 Javascript
js编写的treeview使用方法
Nov 11 #Javascript
Vue.js教程之计算属性
Nov 11 #Javascript
JS控制TreeView的结点选择
Nov 11 #Javascript
node+express制作爬虫教程
Nov 11 #Javascript
html中鼠标滚轮事件onmousewheel的处理方法
Nov 11 #Javascript
Angularjs中的页面访问权限怎么设置
Nov 11 #Javascript
jquery.multiselect多选下拉框实现代码
Nov 11 #Javascript
You might like
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
输出控制类
2006/10/09 PHP
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
JS获取当前页面名称的简单实例
2016/08/19 Javascript
学习Node.js模块机制
2016/10/17 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
详解Vue.js在页面加载时执行某个方法
2018/11/20 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
2019/01/15 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
python 解决Windows平台上路径有空格的问题
2020/11/10 Python
python pillow库的基础使用教程
2021/01/13 Python
python爬取微博评论的实例讲解
2021/01/15 Python
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
购买一个高级域名:BuyDomains
2018/03/11 全球购物
如何在Shell脚本中使用函数
2015/09/06 面试题
中班中秋节活动反思
2014/02/18 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
群众路线教育实践活动剖析材料
2014/09/30 职场文书
2015年推普周活动方案
2015/05/06 职场文书