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

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

 

数值,在页面上使用'-'进行展示。在进行排序的时候,直接使用了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,不需要调换位置。在对'-'进行排序的时候,进行专门的处理即可。



大致的方法如下:

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

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值