如何在JavaScript中对字母/数字数组进行排序

时间:2020-08-25 13:58:37

标签: javascript arrays sorting

这是我的数组

var a=[{name:'ABC125', sName: 'sadf'},{name:'ABC12', sName: 'sadf'},{name:'ABC15', sName: 'sadf'},{name:'Sbc125', sName: 'sadf'},{name:'pcb125', sName: 'sadf'}];

我的排序代码是

a.sort((x,y)=>(x.name.toLowerCase() > y.name.toLowerCase()) ? 1 : -1)

但这使我返回

enter image description here

2 个答案:

答案 0 :(得分:1)

a.sort((x, y) => x.name.localeCompare(y.name, 'en', { numeric: true }))

答案 1 :(得分:0)

var content=[
{name:'ABC125', sName: 'sadf'},
{name:'ABC12', sName: 'sadf'},
{name:'ABC15', sName: 'sadf'},
{name:'Sbc125', sName: 'sadf'},
{name:'pcb125', sName: 'sadf'}
];


content.sort(function (a, b) {
    return ('' + a.attr).localeCompare(b.attr);
})



console.log(content)

输出将为

(5) [{…}, {…}, {…}, {…}, {…}]
0: {name: "ABC125", sName: "sadf"}
1: {name: "ABC12", sName: "sadf"}
2: {name: "ABC15", sName: "sadf"}
3: {name: "Sbc125", sName: "sadf"}
4: {name: "pcb125", sName: "sadf"}

贷记https://stackoverflow.com/a/51169/3046937

这里已经有答案了 Javascript : natural sort of alphanumerical strings

相关问题