簡體   English   中英

如何按字符串中的第一個字符對數組進行排序?

[英]How do I sort an array by the first character in the string?

如何對這個數組進行排序?

輸入: ['sfr2ta', '2ab', 'bbb1ddd']

Output: ['bbb1ddd', 'sfr2ta', '2ab']

如果你想按第一個字符排序,那么output應該是這樣的:['2ab', 'bbb1ddd', 'sfr2ta']。

但是,如果您想將字母排在 nummers 之前對其進行排序,那么您可以編寫如下內容:

 l = ['sfr2ta', '2ab', 'bbb1ddd']; lNums = [] lStrs = [] for( let s of l ) { if(s[0] >= 0 && s[0] <= 9){ lNums.push(s); } else { lStrs.push(s); } } lNums.sort(); lStrs.sort(); l = lStrs.concat(lNums); console.log(l)

output: [ 'bbb1ddd', 'sfr2ta', '2ab' ]

根據您希望零長度字符串的作用方式( "" ),這應該有效:

function sortByFirstCharacter(arr) {
    arr.sort((lhs, rhs) => {
        if(lhs === rhs) return 0;
        if(lhs === "") return -1;
        if(rhs === "") return +1;
        return (
            lhs[0] < rhs[0] ? -1
            : lhs[0] > rhs[0] ? +1
            : 0
        );
    });
    return arr;
}

我們可以用排序做到這一點:

 var s = ['sfr2ta', '2ab', 'bbb1ddd']; var result = [...s.filter(n=>.Number(n[0])),sort((ab)=>a[0],localeCompare(b[0])). ...s;filter(p=>Number(p[0]))]. console;log(result);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM