全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

数组Array的排序sort方法

JavaScript中的Array对象有自己的排序方法sort(),对数组中的数据项进行排序,但是有时候排序结果不尽如人意,比如

var arr = [12, 1, 2, 21, 3];
arr.sort();
alert(arr);   得到的结果为 1,12,2,21,3

这是为什么呢?因为JavaScript中的排序默认按照ascii字符代码进行排序,也就是说,数字也是按照它们的字符串形式排序的。

var strArr = ['a', '2', 'a2', '2a', 'b', '3'];
alert(strArr.sort());

这个得到什么结果呢? 2,2a,3,a,a2,b


因为 数字的ascii码比字母的小,所以数字排在前面,字母排在后面。

如果想继续让上面的数组arr按照数字进行排序,怎么处理呢?

JavaScript给我们提供了一个入口,可以给sort() 方法传递一个参数,即比较函数,来告诉排序算法值与值之间是大于、小于还是等于关系。

比较函数是有着特定算法的函数。

function compare_fn(value1, value2) {
 if (value1 < value2) {
 return -1;
 } else if (value1 > value2) {
 return 1;
 } else {
 return 0;
 }
}

将比较函数 compare_fn 传递给sort,再进行排序,然后输出

arr.sort(compare_fn);
alert(arr);  得到 1, 2, 3, 12, 21

JavaScript中Array对象的sort方法返回值的定义为

负值 : 如果所传递的第一个参数比第二个参数小

零 : 两个值相等

正值 : 如果第一个参数比第二个参数大


上面的比较函数还可以简写为

function compare_fn(value1, value2) {
 return value1 - value2;
}

这个比较的为升序排列


如果想降序排列,直接改变上面的返回值的符号就可以了,给所有返回均取反。

对简写的比较函数就是

function compare_fn(value1, value2) {
 return -(value1 - value2);
}   

function compare_fn(value1, value2) {
 return value2 - value1;
}

简单的记法就是:顺序升;逆序降。

以上这篇数组Array的排序sort方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# array数组  # sort方法  # js使用Array.prototype.sort()对数组对象排序的方法  # js中数组(Array)的排序(sort)注意事项说明  # js中的数组Array定义与sort方法使用示例  # js数组Array sort方法使用深入分析  # 第一个  # 第二个  # 给大家  # 排在  # 自己的  # 返回值  # 这是  # 升序  # 还可以  # 给我们  # 希望能  # 什么呢  # 这篇  # 小编  # 大家多多  # 就可以  # 怎么处理  # 组中  # 也就是说  # 降序 


相关文章: 制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  如何选择适合PHP云建站的开源框架?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  建站之星微信建站一键生成小程序+多端营销系统  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  建站之星如何快速生成多端适配网站?  定制建站如何定义?其核心优势是什么?  如何通过宝塔面板实现本地网站访问?  XML的“混合内容”是什么 怎么用DTD或XSD定义  北京制作网站的公司,北京铁路集团官方网站?  韩国服务器如何优化跨境访问实现高效连接?  如何用PHP快速搭建高效网站?分步指南  测试制作网站有哪些,测试性取向的权威测试或者网站?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  定制建站方案优化指南:企业官网开发与建站费用解析  建站之星安装步骤有哪些常见问题?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  如何通过VPS建站无需域名直接访问?  建站主机选虚拟主机还是云服务器更好?  高端建站三要素:定制模板、企业官网与响应式设计优化  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  如何在建站主机中优化服务器配置?  如何注册花生壳免费域名并搭建个人网站?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  建站之星CMS五站合一模板配置与SEO优化指南  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  广东企业建站网站优化与SEO营销核心策略指南  北京网站制作公司哪家好一点,北京租房网站有哪些?  香港服务器如何优化才能显著提升网站加载速度?  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何挑选最适合建站的高性能VPS主机?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  详解jQuery停止动画——stop()方法的使用  网站制作服务平台,有什么网站可以发布本地服务信息?  高防服务器租用首荐平台,企业级优惠套餐快速部署  css网站制作参考文献有哪些,易聊怎么注册?  如何通过虚拟主机快速搭建个人网站?  建站主机默认首页配置指南:核心功能与访问路径优化  建站之星收费标准详解:套餐费用及年费价格表一览  如何做静态网页,sublimetext3.0制作静态网页?  建站之星好吗?新手能否轻松上手建站?  建站之星2.7模板快速切换与批量管理功能操作指南  Swift中switch语句区间和元组模式匹配  如何做网站制作流程,*游戏网站怎么搭建?  建站主机解析:虚拟主机配置与服务器选择指南  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  建站之星如何开启自定义404页面避免用户流失?  C#怎么创建控制台应用 C# Console App项目创建方法 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。