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 相关文章推荐
JS中style属性
Oct 11 Javascript
jquery tools 系列 scrollable(2)
Sep 06 Javascript
利用jquery的获取JS文件中的字符串内容
Feb 14 Javascript
用jquery中插件dialog实现弹框效果实例代码
Nov 15 Javascript
JS 弹出层 定位至屏幕居中示例
May 21 Javascript
Css3制作变形与动画效果
Jul 24 Javascript
node.js cookie-parser 中间件介绍
Jun 06 Javascript
基于Layer+jQuery的自定义弹框
May 26 Javascript
详解JavaScript中return的用法
May 08 Javascript
vue 实现的树形菜的实例代码
Mar 19 Javascript
Vue商品控件与购物车联动效果的实例代码
Jul 21 Javascript
javascript 使用sleep函数的常见方法详解
Apr 26 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
利用php_imagick实现复古效果的方法
2016/10/18 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
Jquery知识点一 Jquery的ready和Dom的onload的区别
2011/01/15 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
jQuery Easyui快速入门教程
2016/08/21 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
2020/11/02 Javascript
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
Python PyPDF2模块安装使用解析
2020/01/19 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
欧洲著名的二手奢侈品网站:Vestiaire Collective
2020/03/07 全球购物
《童年》教学反思
2014/02/18 职场文书
工作决心书
2014/03/11 职场文书
采购部长岗位职责
2014/06/13 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
工作保证书
2015/01/17 职场文书
老公保证书怎么写
2015/02/26 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
宣传委员竞选稿
2015/11/19 职场文书
2019行政前台转正申请书范文3篇
2019/08/15 职场文书
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
python基础之文件操作
2021/10/24 Python
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫