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 相关文章推荐
html中使用javascript调用本地程序(exe、doc等)实现代码
Apr 26 Javascript
jQuery学习之prop和attr的区别示例介绍
Nov 15 Javascript
js实现一个链接打开两个链接地址的方法
May 12 Javascript
javascript的replace方法结合正则使用实例总结
Jun 16 Javascript
JQuery实现DIV其他动画效果的简单实例
Sep 18 Javascript
React根据宽度自适应高度的示例代码
Oct 11 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
May 30 jQuery
layui实现checkbox的目录树tree的例子
Sep 12 Javascript
vue+layui实现select动态加载后台数据的例子
Sep 20 Javascript
Vue学习之常用指令实例详解
Jan 06 Javascript
vue实现自定义多选按钮
Jul 16 Javascript
使用Vant完成Dialog弹框案例
Nov 11 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
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
javascript制作2048游戏
2015/03/30 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
JavaScript之DOM_动力节点Java学院整理
2017/07/03 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
vue2.0 解决抽取公用js的问题
2020/07/31 Javascript
JS实现手风琴特效
2020/11/08 Javascript
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
Python通过命令开启http.server服务器的方法
2017/11/04 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
pandas去除重复列的实现方法
2019/01/29 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
Python 实现进度条的六种方式
2021/01/06 Python
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
医院信息公开实施方案
2014/05/09 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
MySQL 全文检索的使用示例
2021/06/07 MySQL
python之json文件转xml文件案例讲解
2021/08/07 Python
一条 SQL 语句执行过程
2022/03/17 MySQL