[英]How to find unique part of sting in array of strings?
我有一個地址數組:
或像這樣:
我不知道字符串的唯一或相同部分有多長時間。
我希望能夠計算出地址的唯一部分,並與其他部分分開顯示一次,因此它看起來像這樣:
一些道路,城鎮,郵政編碼(或第二個示例的城鎮,郵政編碼)
我試過使用一個對象,然后使用_.pluck和_.uniq來測試該項目是否唯一,但如果以上第3項與其他項目不一致,則該項目是否失敗。
假設分隔符始終是逗號,這是一個可能的解決方案
。
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.