sort排序

实际工作中,几乎不用自己写排序

最常用的是数组自带的sort方法实现排序

1、从大到小排序(数值比较)

//传的数组中的元素为id_num格式

function sortArr(arr):Array{

arr.sort(function(o1:*,o2*)):int{

    var id1:int = parseInt(o1.spliut('_')[0]);

    var num1:int = parseInt(o1.split('_')[1]);

    var id2:int = parseInt(o1.spliut('_')[0]);

    var num2:int = parseInt(o1.split('_')[1]);

    if(num1 != num2){

// 先按数字大小排序

          return num2 - num1;

//数字相等时,id大的排在前面

     return id2 - id1;

  })

return resultArr;

}

2.数字字符排序 sort方法不传函数

直接arr.sort()

返回第一个字符(注意:只比较第一个字符)进行排序后的数组

如 arr = [10,30,2];

arr.sort()返回值为[10,2,30]

而浏览器中的sort是基于浏览器自身的排序算法执行的,如果涉及到多个会影响排序的因素,如姓名首字母、年龄都参与排序,排序前已经按姓名首字母排好了。如果这时候只对年龄进行排序,在不同的浏览器或者同一个浏览器的不同版本运行时,可能会出现排序后的姓名首字母乱了。原因是sort的底层排序原理可能不一样,所以要同时将姓名首字母和年龄两个因素加入到同一个排序函数里进行排序

 

简单粗暴地讲,return 正数,两个比较对象交换位置,return 负数,两个比较对象不交换位置。

 

注意:SORT中的this指向window,而不是当前类,如果要调当前类的数据,则直接调当前类的实例化对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值