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 相关文章推荐
url参数中有+、空格、=、%、&amp;、#等特殊符号的问题解决
May 15 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
Nov 22 Javascript
js 异步操作回调函数如何控制执行顺序
Dec 24 Javascript
再探JavaScript作用域
Sep 24 Javascript
新手快速学习JavaScript免费教程资源汇总
Jun 25 Javascript
把Node.js程序加入服务实现随机启动
Jun 25 Javascript
在Ubuntu系统上安装Node.JS的教程
Oct 15 Javascript
JavaScript数组实现数据结构中的队列与堆栈
May 26 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
Dec 19 Javascript
BootStrap模态框不垂直居中的解决方法
Oct 19 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
Jun 10 Javascript
详解如何在Javascript中使用Object.freeze()
Oct 18 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时间戳使用实例代码
2008/06/07 PHP
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
JavaScript省市联动实现代码
2014/02/15 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
2017/07/05 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
angularJS开发注意事项
2018/05/26 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
Django中URLconf和include()的协同工作方法
2015/07/20 Python
Python基于pygame实现的弹力球效果(附源码)
2015/11/11 Python
Python实现可自定义大小的截屏功能
2018/01/20 Python
取numpy数组的某几行某几列方法
2018/04/03 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
如何利用Python分析出微信朋友男女统计图
2019/01/25 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
运动会解说词50字
2014/01/18 职场文书
建筑总经理岗位职责
2014/02/02 职场文书
2014年预备党员学习两会心得体会
2014/03/17 职场文书
本科生求职信
2014/06/17 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
2015年团委副书记工作总结
2015/07/23 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers