快速实现数组排序sort

快速实现排序sort

arr.sort([compareFunction])

1. 如果未指明compareFunction函数,直接写arr.sort(),会自动按照每个元素转换为的字符串的Unicode编码值进行排序(用于字符串排序)

2. 如果指明compareFunction函数,则比较的是数字而非字符串

compareFunction(a,b)有两个参数,如果返回的是a-b则是升序如果返回的是b-a则是降序

例题

let array1 = [32, 34, 1, 6, 45, 54, 3, 7, 5, 4];
array1.sort();
// sort()默认
// 未指明compareFunction,那么元素会按照转换为的字符串的诸个字符的Unicode位点进行排序
console.log(array1);   // [1, 3, 32, 34, 4, 45, 5, 54, 6, 7]
​
array1.sort((a, b) => a - b)
console.log(array1)    // [1, 3, 4, 5, 6, 7, 32, 34, 45, 54]
​
array1.sort((a, b) => b - a)
console.log(array1)       //[54, 45, 34, 32, 7, 6, 5, 4, 3, 1] 

3. 数组是个对象,对对象的值进行排序

按age(数值)

let array2 = [{ name: 'lk', age: 23 }, { name: 'zy', age: 15 }, { name: 'ij', age: 27 }, { name: 'er', age: 13 }]
array2.sort(function (a, b) {
    return (a.age - b.age)    // 依据age排序,一定要return
})
console.log(array2) 

结果

按name(字符串)

let array2 = [{ name: 'lk', age: 23 }, { name: 'zy', age: 15 }, { name: 'ij', age: 27 }, { name: 'er', age: 13 }]
array2.sort(function (a, b) {
    if (a.name > b.name) {     // < 就是降序
        return 1;   //return的值大于0 就返回正序小于0就是降序
  } else {
        return -1; 
  }
})
console.log(array2) 

结果

最后

最近还整理一份JavaScript与ES的笔记,一共25个重要的知识点,对每个知识点都进行了讲解和分析。能帮你快速掌握JavaScript与ES的相关知识,提升工作效率。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值