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 相关文章推荐
window.js 主要包含了页面的一些操作
Dec 23 Javascript
解析jquery中的ajax缓存问题
Dec 19 Javascript
我的Node.js学习之路(二)NPM模块管理
Jul 06 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
Sep 15 Javascript
javascript实现在网页中运行本地程序的方法
Feb 03 Javascript
js中获取键盘事件的简单实现方法
Oct 10 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
Dec 17 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
Feb 16 Javascript
Vue 实现前进刷新后退不刷新的效果
Jun 14 Javascript
详解Nuxt.js中使用Element-UI填坑
Sep 06 Javascript
Vuex的实战使用详解
Oct 31 Javascript
关于AngularJS中几种Providers的区别总结
May 17 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
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
深入理解JavaScript作用域和作用域链
2011/10/21 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
js 删除数组的几种方法小结
2014/02/21 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
Jquery实现动态切换图片的方法
2015/05/18 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
vue-父子组件和ref实例详解
2019/11/10 Javascript
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
python实现Decorator模式实例代码
2018/02/09 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
用python写一个定时提醒程序的实现代码
2019/07/22 Python
Django中FilePathField字段的用法
2020/05/21 Python
台湾7-ELEVEN线上购物中心:7-11
2021/01/21 全球购物
毕业班联欢会主持词
2014/03/27 职场文书
全国文明单位申报材料
2014/05/31 职场文书
社区护士演讲稿
2014/08/27 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis
Golang 切片(Slice)实现增删改查
2022/04/22 Golang