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实现的抽象CSS圆角效果!!
May 03 Javascript
HTML中的setCapture和releaseCapture使用介绍
Mar 21 Javascript
jquery indexOf使用方法
Aug 19 Javascript
从jquery的过滤器.filter()方法想到的
Sep 29 Javascript
document.compatMode的CSS1compat使用介绍
Apr 03 Javascript
JavaScript基础知识学习笔记
Dec 02 Javascript
必备的JS调试技巧汇总
Jul 20 Javascript
微信小程序开发入门基础教程
Apr 19 Javascript
讲解vue-router之什么是嵌套路由
May 28 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
Oct 19 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
May 22 Javascript
vue el-table实现自定义表头
Dec 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 无线电
web方式ftp
2006/10/09 PHP
php的hash算法介绍
2014/02/13 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
thinkPHP交易详情查询功能详解
2016/12/02 PHP
Prototype Function对象 学习
2009/07/12 Javascript
JavaScript的public、private和privileged模式
2009/12/28 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
2012/09/17 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
vue实现简单loading进度条
2018/06/06 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
2019/08/12 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
讲解Python中的递归函数
2015/04/27 Python
Python 专题四 文件基础知识
2017/03/20 Python
Python 实现随机数详解及实例代码
2017/04/15 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
基于Python词云分析政府工作报告关键词
2020/06/02 Python
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
公司综合部的成员自我评价分享
2013/11/05 职场文书
总裁秘书岗位职责
2013/12/04 职场文书
单位实习证明怎么写
2014/01/17 职场文书
幼儿园小班植树节活动方案
2014/03/04 职场文书
党员证明信
2015/06/19 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
分析mysql中一条SQL查询语句是如何执行的
2021/06/21 MySQL
Nginx限流和黑名单配置
2022/05/20 Servers
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers