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从头学起第四讲 jquery入门教程
Aug 01 Javascript
js不能跳转到上一页面的问题解决方法
Mar 01 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
Oct 20 Javascript
js实现鼠标悬浮给图片加边框的方法
Jan 30 Javascript
js实现单击图片放大图片的方法
Feb 17 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
Oct 31 Javascript
vue实现商城购物车功能
Nov 27 Javascript
redux-saga 初识和使用
Mar 10 Javascript
如何使用puppet替换文件中的string
Dec 06 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
Jul 15 Javascript
浅谈Layui的eleTree树式选择器使用方法
Sep 25 Javascript
js实现烟花特效
Mar 02 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/04/11 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
php 将json格式数据转换成数组的方法
2018/08/21 PHP
JavaScript更改class和id的方法
2008/10/10 Javascript
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
js实现网页随机验证码
2020/10/19 Javascript
[01:00:25]NB vs Secret 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
centos下更新Python版本的步骤
2013/02/12 Python
Python中的with...as用法介绍
2015/05/28 Python
python实现推箱子游戏
2020/03/25 Python
详解Python_shutil模块
2019/03/15 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
Omio中国:全欧洲低价大巴、火车和航班搜索和比价
2018/08/09 全球购物
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
单位未婚证明范本
2014/01/18 职场文书
化妆师职业生涯规划书
2014/02/16 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
大足石刻导游词
2015/02/02 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
教师培训简讯
2015/07/20 职场文书
西部计划志愿者工作总结
2015/08/11 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
Python机器学习之决策树和随机森林
2021/07/15 Javascript