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 相关文章推荐
由document.body和document.documentElement想到的
Apr 13 Javascript
javascript与asp.net(c#)互相调用方法
Dec 13 Javascript
javascript五图轮播切换实用版
Aug 17 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
Nov 21 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
Mar 19 Javascript
jquery跟js初始化加载的多种方法及区别介绍
Apr 02 Javascript
jQuery插件Timelinr 实现时间轴特效
Oct 04 Javascript
AngularJS过滤器filter用法实例分析
Nov 04 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
Mar 01 Javascript
详解vue-router基本使用
Apr 18 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
Angular性能优化之第三方组件和懒加载技术
May 10 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 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
php 判断数组是几维数组
2013/03/20 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
php监测数据是否成功插入到Mysql数据库的方法
2016/11/25 PHP
php上传excel表格并获取数据
2017/04/27 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
[17:36]VG战队纪录片
2014/08/21 DOTA
Python深入06——python的内存管理详解
2016/12/07 Python
python itchat实现微信自动回复的示例代码
2017/08/14 Python
python实现自动登录
2018/09/17 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
竞选班长演讲稿
2013/12/30 职场文书
小学生新学期寄语
2014/01/19 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
2014年国培研修感言
2014/03/09 职场文书
小学学校评估方案
2014/06/08 职场文书
医院标语大全
2014/06/23 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
医生个人年度总结
2015/02/28 职场文书
小学少先队活动总结
2015/05/08 职场文书
导游词之千岛湖
2019/09/23 职场文书
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技
Python实现聚类K-means算法详解
2022/07/15 Python