簡體   English   中英

在字符串數組中,如何在字符串的一部分上對數組進行排序

[英]In an array of strings how to sort the array on part of the strings

當我想也許有一種方法可以使用array.sort()來完成這項工作時,我開始為此編寫一個冒泡排序?

這是一個(希望)明確我要排序的例子:(文件名列表)

var array = ['impression_page_1_12_juin','impression_page_1_13_juin','impression_page_2_12_juin','impression_page_2_13_juin']

正如您所看到的,在2個不同日期有2個'page1',每個字符串中只有字符19和20不同。 我想對這2個字符進行排序。

Javascript可以直截了當地執行,還是應該返回到我的子串和冒泡排序方法?

使用帶有函數的sort方法進行比較:

array.sort(function(x,y){
  var xp = x.substr(18, 2);
  var yp = y.substr(18, 2);
  return xp == yp ? 0 : xp < yp ? -1 : 1;
});

是的,您可以將函數傳遞給array.sort,根據您感興趣的條件比較兩個字符串。請參閱如何在javascript中對數組進行排序?

你必須小心字符串與數字: '1_12' < '1_2'True ,例如。 如果您需要將它們作為數字進行比較,您可以拆分字符串,對每個部分執行parseInt,並實現成對比較。

暫無
暫無

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

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