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 相关文章推荐
Jquery 扩展方法
May 06 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
Nov 22 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
详解JavaScript基于面向对象之创建对象(1)
Dec 10 Javascript
异步加载JS、CSS代码(推荐)
Jun 15 Javascript
JavaScript的==运算详解
Jul 20 Javascript
基于JavaScript实现前端文件的断点续传
Oct 17 Javascript
用jmSlip编写移动端顶部日历选择控件
Oct 24 Javascript
原生js验证简洁注册登录页面
Dec 17 Javascript
微信小程序 侧滑删除(左滑删除)
May 23 Javascript
JS的函数调用栈stack size的计算方法
Jun 24 Javascript
angular6的table组件开发的实现示例
Dec 26 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取整的几种方式
2013/06/25 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
ext jquery 简单比较
2010/04/07 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
2015/04/25 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
2015/06/16 Javascript
JavaScript实现自动对页面上敏感词进行屏蔽的方法
2015/07/27 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
javascript常用的设计模式
2017/02/09 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
[01:16:12]完美世界DOTA2联赛PWL S2 FTD vs Inki 第一场 11.21
2020/11/23 DOTA
Python单链表简单实现代码
2016/04/27 Python
python入门教程 python入门神图一张
2018/03/05 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
Hotels.com拉丁美洲:从豪华酒店到经济型酒店的预定优惠和折扣
2019/12/09 全球购物
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
演讲比赛获奖感言
2014/02/02 职场文书
开业主持词
2014/03/21 职场文书
百日安全生产活动总结
2014/07/05 职场文书
同事打架检讨书
2015/05/06 职场文书
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏