sort 排序

2023-03-09  本文已影响0人  洪锦一

一、 先根据字母排序,在根据数字排序

let arr = [
    {name: 'admin'},
    {name: 'Admin'},
    {name: 'admin'},
    {name: 'dom'},
    {name: "3"},
    {name: 'Boy'},
    {name: 'bay'},
    {name: "2"},
    {name: 'com'},
    {name: 'for'},
    {name: "1"},
    {name: "5"},
]


  1. 这行代码会根据每个对象中name属性的首字母进行排序,返回一个新的排好序的数组。
arr.sort((a, b) => a.name.localeCompare(b.name))
  1. 这行代码会先判断每个对象中name属性的第一位是字母还是数字,如果第一位是字母,则排在前面,如果第一位是数字,则排在后面。如果第一位相同,则会根据每个对象中name属性进行排序。最后返回一个新的排好序的数组。
arr.sort((a, b) => {
    const reg = /^[A-Za-z]/;
    const aFirstIsLetter = reg.test(a.name);
    const bFirstIsLetter = reg.test(b.name);
    if (aFirstIsLetter && !bFirstIsLetter) {
        return -1;
    } else if (!aFirstIsLetter && bFirstIsLetter) {
        return 1;
    } else {
        return a.name.localeCompare(b.name);
    }
})
上一篇下一篇

猜你喜欢

热点阅读