详解数组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应用?

