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 相关文章推荐
Mootools 1.2教程 函数
Sep 15 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
Jun 05 Javascript
小议JavaScript中Generator和Iterator的使用
Jul 29 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
Sep 19 Javascript
举例说明JavaScript中的实例对象与原型对象
Mar 11 Javascript
浅谈jQuery添加的HTML,JS失效的问题
Oct 05 Javascript
JS正则替换掉小括号及内容的方法
Nov 29 Javascript
vue.js整合mint-ui里的轮播图实例代码
Dec 27 Javascript
WebPack配置vue多页面的技巧
May 15 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
Apr 30 Javascript
JS判断数组里是否有重复元素的方法小结
May 21 Javascript
在vue项目中封装echarts的步骤
Dec 25 Vue.js
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将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
2016/05/31 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
从零学Python之引用和类属性的初步理解
2014/05/15 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
python实现反转部分单向链表
2018/09/27 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
Django框架 querySet功能解析
2019/09/04 Python
python实现的分层随机抽样案例
2020/02/25 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
python 画条形图(柱状图)实例
2020/04/24 Python
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
初中生自我鉴定
2014/02/04 职场文书
建设工程授权委托书
2014/09/22 职场文书
2015年公务员工作总结
2015/04/24 职场文书
经营目标责任书
2015/05/08 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
教师远程研修感悟
2015/11/18 职场文书
职场领导同事生日简短祝福语
2019/08/06 职场文书