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 相关文章推荐
js tab 选项卡
Apr 26 Javascript
Js 时间间隔计算的函数(间隔天数)
Nov 15 Javascript
IE6下拉框图层问题探讨及解决
Jan 03 Javascript
JQuery动画animate的stop方法使用详解
May 09 Javascript
javascript单引号和双引号的区别和处理
May 14 Javascript
VS2008中使用JavaScript调用WebServices
Dec 18 Javascript
IE浏览器下PNG相关功能
Jul 05 Javascript
Jquery根据浏览器窗口改变调整大小的方法
Feb 07 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
Aug 28 Javascript
利用Blob进行文件上传的完整步骤
Aug 02 Javascript
node中的密码安全(加密)
Sep 17 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
Aug 12 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
日本十大最佳动漫,全都是二次元的神级作品
2019/10/05 日漫
windows7下php开发环境搭建图文教程
2015/01/06 PHP
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JavaScript实现找质数代码分享
2015/03/24 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
Vue2.0实现将页面中表格数据导出excel的实例
2017/08/09 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
微信小程序实现底部弹出框
2020/11/18 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
玩转python爬虫之正则表达式
2016/02/17 Python
Python 稀疏矩阵-sparse 存储和转换
2017/05/27 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
python2.7到3.x迁移指南
2018/02/01 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
2019/02/22 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
Python实现不规则图形填充的思路
2020/02/02 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
李培根演讲稿
2014/05/22 职场文书
应届生求职信
2014/05/31 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
党员个人总结范文
2015/02/14 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS