Array.sort(function(){})方法的调用

本文介绍了一种在JavaScript中实现自定义排序的方法,特别关注了如何处理特殊符号如'-'的情况,并提供了正序和倒序排序的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做个项目,主要涉及到页面上面的排序,有个特点,这个排序除了涉及到数字,汉字排序,还有'-',这是符号是因为无法获取到对应的

 

数值,在页面上使用'-'进行展示。在进行排序的时候,直接使用了javascript内置的排序算法,就是冒泡排序,基本原理就是,你只要告诉我

 

如何比较这两个值,它就可以进行冒泡排序。由于数量不是很多,所以还没有太多的涉及到时间和空间复杂度。中间由于这个我被弄晕了好几

 

次,比如下面是部分的比较结果:

 

 

  1. arrayObject.sort(sortby)  

 

参数描述
sortby可选。规定排序顺序。必须是函数。

 

 

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

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

 


 

  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回-1(一个小于 0 的值)
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回1(一个大于 0 的值)

 

 

 

 

顺序:v1=0.41;   v2=-;   value=-1;

顺序:v1=-;   v2=0.91;   value=1;

顺序:v1=-;     v2=-;     value=0;

顺序:v1=1.26; v2=0.56;   value=1 顺序:v1=1.26; v2=2.51;   value=-1

 

从上面的排序结果看,如果是顺序,前面比后面的值大,返回1,表明需要调换位置。如果后面的值要大,则返回-1,不需要调换位置。在对'-'进行排序的时候,进行专门的处理即可。

 

倒序:v1=1.26;   v2=5.47;   value=1

倒序:v1=1.26;   v2=0.89;   value=-1

倒序:v1=-;   v2=2.51;   value=1;

倒序:v1=-;   v2=-;   value=1;

倒序:v1=27.77;   v2=-;   value=-1;

 

从上面的排序结果看,如果是倒序,前面比后面的值大,返回-1,表明不需要调换位置。如果后面的值要大,则返回1,不需要调换位置。在对'-'进行排序的时候,进行专门的处理即可。



大致的方法如下:

 
如果需要对产生的文件进行合并处理:
 
这个时候文件就会生成一个文件,进行排序处理。

 

 

 

 

 

 

 

 

Arrays.sort是Java中的一个方法,用于对数组进行排序。该方法有多个重载形式,可以根据不同的参数进行排序操作。通过调用Arrays.sort方法,可以对包含数字的数组进行升序或降序排序。例如,如果我们有一个包含数字的数组ary,我们可以使用ary.sort()对其进行排序。如果我们想要按照数字的大小进行升序排序,可以使用ary.sort(function(a,b){ return a-b; })。而如果想要按照数字的大小进行降序排序,可以使用ary.sort(function(a,b){ return b-a; })。对于包含对象的数组,我们可以根据对象中的某个属性进行排序。例如,如果我们有一个包含对象的数组arr,其中每个对象都有一个age属性,我们可以使用arr.sort((a, b) => { return b.age - a.age; })将数组按照对象的age属性从大到小进行排序。 总结起来,Arrays.sort是一个用于排序数组的方法,可以根据不同的参数进行排序操作,包括数字的升序和降序排序,以及按照对象的某个属性进行排序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [js数组排序之Array.sort()函数](https://blog.csdn.net/qq_26905813/article/details/126616289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Arrys.sort()的几种用法](https://blog.csdn.net/weixin_44536462/article/details/128503564)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Java Arrays.sort和Collections.sort排序实现原理解析](https://download.csdn.net/download/weixin_38657115/12743197)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值