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模拟select下拉框的简单示例代码
Jan 26 Javascript
JavaScript头像上传插件源码分享
Mar 29 Javascript
JavaScript 闭包详细介绍
Sep 28 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
Nov 30 Javascript
jQuery 表单序列化实例代码
Jun 11 jQuery
修改 bootstrap table 默认detailRow样式的实例代码
Jul 21 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
Jan 26 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
Mar 06 Javascript
在create-react-app中使用css modules的示例代码
Jul 31 Javascript
iview同时验证多个表单问题总结
Sep 29 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
Feb 15 Javascript
vue.js+element 默认提示中英文操作
Nov 11 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数组相关函数的使用
2013/04/26 PHP
CI(CodeIgniter)框架介绍
2014/06/09 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
javascript alert乱码的解决方法
2013/11/05 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
Highcharts入门之简介
2016/08/02 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
Express框架之connect-flash详解
2017/05/31 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
Nodejs模块的调用操作实例分析
2018/12/25 NodeJs
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
Python按行读取文件的简单实现方法
2016/06/22 Python
python enumerate函数的使用方法总结
2017/11/15 Python
Python分支结构(switch)操作简介
2018/01/17 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
创建卫生先进单位实施方案
2014/03/10 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
2014最新自愿离婚协议书范本
2014/11/19 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
浅谈MySQL之select优化方案
2021/08/07 MySQL
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技