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

发布时间 - 2026-01-10 23:22:02    点击率:

数组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()排序方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# js  # array  # sort排序  # sort  # js使用Array.prototype.sort()对数组对象排序的方法  # js中数组(Array)的排序(sort)注意事项说明  # js 重构Array的sort排序方法  # 数据排序谁最快(javascript中的Array.prototype.sort PK 快速排序)  # 组中  # 这两个  # 要比  # 小编  # 李四  # 王五  # 给你  # 地说  # 在此  # 将在  # 出现在  # 给大家  # 如果没有  # 自定义  # 有必要  # 可选  # 转换成  # 主要用于  # 所述  # 给我留言 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Linux系统运维自动化项目教程_Ansible批量管理实战  如何在Ubuntu系统下快速搭建WordPress个人网站?  Laravel如何实现多对多模型关联?(Eloquent教程)  南京网站制作费用,南京远驱官方网站?  如何正确下载安装西数主机建站助手?  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  开心动漫网站制作软件下载,十分开心动画为何停播?  海南网站制作公司有哪些,海口网是哪家的?  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  利用python获取某年中每个月的第一天和最后一天  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  如何在腾讯云免费申请建站?  Windows Hello人脸识别突然无法使用  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  iOS中将个别页面强制横屏其他页面竖屏  EditPlus中的正则表达式实战(5)  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  佛山网站制作系统,佛山企业变更地址网上办理步骤?  java获取注册ip实例  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  如何基于PHP生成高效IDC网络公司建站源码?  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  北京企业网站设计制作公司,北京铁路集团官方网站?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  如何为不同团队 ID 动态生成多个非值班状态按钮  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  QQ浏览器网页版登录入口 个人中心在线进入  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  香港服务器网站推广:SEO优化与外贸独立站搭建策略  香港服务器部署网站为何提示未备案?  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  Laravel如何实现一对一模型关联?(Eloquent示例)  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  如何在阿里云香港服务器快速搭建网站?  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  IOS倒计时设置UIButton标题title的抖动问题  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  JavaScript常见的五种数组去重的方式  Laravel如何实现文件上传和存储?(本地与S3配置)  JS中对数组元素进行增删改移的方法总结  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?