详解数组Array.sort()排序的方法


Posted in Javascript onMay 09, 2020

数组sort排序

sort比较次数,sort用法,sort常用

描述

方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort()时没有使用参数,将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的元素进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如果有必要的话),以便进行比较。

如果想按照别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b,其返回值如下:

如果根据你的评判标准,a小于b,在排序后的数组中a应该出现在b之前,就返回一个小于0的值。

如果a等于b,就返回0。

如果a大于b,就返回一个大于0的值。

注意,数组中undefined的元素都排列在数组末尾。即使你提供了自定义的排序函数也是这样,因为undefined值不会被传递给你提供的orderfunc。

JavaScript中数组的sort()方法主要用于对数组的元素进行排序。其中,sort()方法有一个可选参数。但是,此参数必须是函数。 数组在调用sort()方法时,如果没有传参将按字母顺序(字符编码顺序)对数组中的元素进行排序,如果想按照其他标准进行排序,就需要进行传一个参数且为函数,该函数要比较两个值,并且会返回一个用于说明这两个值的相对顺序的数字。

1、对数字数组进行由小到大的顺序进行排序。

代码:

var arr = [22,12,3,43,56,47,4];
arr.sort();
console.log(arr); // [12, 22, 3, 4, 43, 47, 56]
arr.sort(function (m, n) {
 if (m < n) return -1
 else if (m > n) return 1
 else return 0
});
console.log(arr); // [3, 4, 12, 22, 43, 47, 56]

2、对字符串数组执行不区分大小写的字母表排序。

代码:

var arr = ['abc', 'Def', 'BoC', 'FED'];
console.log(arr.sort()); // ["BoC", "Def", "FED", "abc"]
console.log(arr.sort(function(s, t){
 var a = s.toLowerCase();
 var b = t.toLowerCase();
 if (a < b) return -1;
 if (a > b) return 1;
 return 0;
})); // ["abc", "BoC", "Def", "FED"]

3、对包含对象的数组排序,要求根据对象中的年龄进行由大到小的顺序排列

代码:

var arr = [{'name': '张三', age: 26},{'name': '李四', age: 12},{'name': '王五', age: 37},{'name': '赵六', age: 4}];
var objectArraySort = function (keyName) {
 return function (objectN, objectM) {
 var valueN = objectN[keyName]
 var valueM = objectM[keyName]
 if (valueN < valueM) return 1
 else if (valueN > valueM) return -1
 else return 0
 }
}
arr.sort(objectArraySort('age'))
console.log(arr) // [{'name': '王五', age: 37},{'name': '张三', age: 26},{'name': '李四', age: 12},{'name': '赵六', age: 4}]

以上所述是小编给大家介绍的JavaScript中数组Array.sort()排序方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS类的封装及实现代码
Dec 02 Javascript
js 数组克隆方法 小结
Mar 20 Javascript
javascript实现链接单选效果的方法
May 13 Javascript
基于JS代码实现实时显示系统时间
Jun 16 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
Sep 24 Javascript
Javascript 动态改变imput type属性
Nov 01 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
Sep 22 jQuery
Vue实战之vue登录验证的实现代码
Oct 31 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
Aug 12 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
May 23 Javascript
原生JS实现天气预报
Jun 16 Javascript
JavaScript中数组Array.sort()排序方法详解
Mar 01 #Javascript
javascript中replace使用方法总结
Mar 01 #Javascript
jQuery validate 验证radio实例
Mar 01 #Javascript
提高JavaScript执行效率的23个实用技巧
Mar 01 #Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
Mar 01 #Javascript
分分钟玩转Vue.js组件(二)
Mar 01 #Javascript
js实现带三角符的手风琴效果
Mar 01 #Javascript
You might like
php日历[测试通过]
2008/03/27 PHP
JS 统计时间
2021/03/09 Javascript
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
JS随即打乱数组实现代码
2012/12/03 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
整理Javascript流程控制语句学习笔记
2015/11/29 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
纯JS实现轮播图
2017/02/22 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
Python更新所有已安装包的操作
2020/02/13 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
python 获取计算机的网卡信息
2021/02/18 Python
密封类可以有虚函数吗
2014/08/11 面试题
纺织工程专业个人求职信范文
2014/01/27 职场文书
竞选大队长演讲稿
2014/04/29 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
python 实现的截屏工具
2021/05/08 Python
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL
Python学习之时间包使用教程详解
2022/03/21 Python