[英]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.