簡體   English   中英

在javascript中對數組進行排序的算法

[英]Algorithm to sort an array in javascript

我很難找到解決方案。

我有一個與此類似的數組。

// Original array 
const orig_array = ["2", "10", "01A", "1A", "02B", "1","03B"]; 

// The sorted array needs to be like this. 
sorted_array = ["1", "1A", "01A", "2", "02B", "03B", "10"]; 

我曾嘗試編寫這樣的自定義排序函數,但找不到解決方案。 我很感激任何幫助。

 const orig_array = ["2", "10", "01A", "1A", "02B", "1","03B"];

 const sorted_array = orig_array.sort((a, b) => {
  if (a - b) {
   return a - b;
  }
 if (a.localeCompare(b) === -1) {
  return a.length - b.length;
 } else {
 return 1;
}
});
console.log(sorted_array);

您可以先將parseInt應用於兩個字符串以獲取第一個數字部分並減去它們。 如果數字部分相等,則減去長度。

 const orig_array = ["2", "10", "01A", "1A", "02B", "1","03B"]; console.log(orig_array.sort((a,b)=>parseInt(a)-parseInt(b)||a.length-b.length));

暫無
暫無

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

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