簡體   English   中英

如何在字符串數組中找到字符串的唯一部分?

[英]How to find unique part of sting in array of strings?

我有一個地址數組:

  1. 郵編,城鎮一些路1號樓
  2. 郵編,城鎮一些路2號樓
  3. 郵編3,一些建築物,一些道路,城鎮
  4. 郵編,城鎮一些路4號樓

或像這樣:

  1. 郵編1鎮
  2. 郵編2鎮
  3. 公寓3,一些建築物,城鎮,郵政編碼
  4. 郵編,鎮4

我不知道字符串的唯一或相同部分有多長時間。

我希望能夠計算出地址的唯一部分,並與其他部分分開顯示一次,因此它看起來像這樣:

一些道路,城鎮,郵政編碼(或第二個示例的城鎮,郵政編碼)

  1. 1樓
  2. 2樓
  3. 3室公寓
  4. 4樓

我試過使用一個對象,然后使用_.pluck和_.uniq來測試該項目是否唯一,但如果以上第3項與其他項目不一致,則該項目是否失敗。

假設分隔符始終是逗號,這是一個可能的解決方案

  1. 將每個數組元素轉換為元素數組
  2. 為每個地址創建一個具有兩個屬性{unique_address:“”,changing_info:“”}的模型。 unique_address屬性由數組的最后三個元素組成。

var modelList=[];

_.each(addresses, function(element){
   var addrArr= addresses[element].split("");  //= ["Flat 1", "Some Road", "Town", "Postcode"];
   var len=addrArr.length;
   var uniq=addrArr[len-1]+" "+addrArr[len-2]+" "+addrArr[len-3]; //uniq= "Some Road Town Postcode"
   var chang="";
   for (var i=0;i<(len-3);i+){
         chang=chang+addrArr[i];
         } //which gives chang="Flat 1"
   modelList.push({unique_address:uniq, changing_info:chang});
   });

現在,您有了這樣的對象列表:

modelList=[{unique_address: "Some Road Town Postcode", changing_info: "Flat 1"},
{unique_address: "Some Road Town Postcode", changing_info: "Flat 2"},
{unique_address: "Some Road Town Postcode", changing_info: "Flat 45"}];

有了這樣的列表,您可以通過多種方式獲得所需的內容。

我建議使用_.groupBy(list, iterator)中內置的_.groupBy(list, iterator) ,如下所示:

_.groupBy(modelList, function(element) {
    return element.unique_address;
});

就這樣。

有關使用groupby的更多信息,請參見如何在Backbone.js中使用groupBy對集合進行分組?

暫無
暫無

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

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