[英]Remove same values in a string
是否可以刪除字符串中的重復值?
例如: aaa, bbb, ccc, ddd, bbb, ccc, eee, fff, ggg
預期輸出如下: aaa, bbb, ccc, ddd, eee, fff, ggg
我不知道該如何實現。
使用String.prototype.match()
和Array.prototype.filter()
函數的EcmaScript5解決方案:
var str = 'aaa, bbb, ccc, ddd, bbb, ccc, eee, fff, ggg', unique_items = str.match(/\\b\\w+\\b/g).filter(function (el, idx, a) { return idx === a.lastIndexOf(el); }); // unique_items.sort(); // to get a sorted list of words(alphabetically) console.log(unique_items); // back to string console.log(unique_items.join(', '));
它還將涵蓋復雜的輸入字符串,例如'aaa, bbb,, ccc, ddd, bbb, ccc? eee,, fff, ggg,,'
'aaa, bbb,, ccc, ddd, bbb, ccc? eee,, fff, ggg,,'
在不影響現有訂單的情況下使用減少功能
var names = ["No","Speaking","Guy","No","Test","Solutions","No"];
var uniq = names.reduce(function(a,b){
if (a.indexOf(b) < 0 ) a.push(b);
return a;
},[]);
console.log(uniq, names) // [ 'No', 'Speaking', 'Guy', 'Test', 'Solutions' ]
// one liner
return names.reduce(function(a,b){if(a.indexOf(b)<0)a.push(b);return a;},[]);
以逗號分隔字符串,然后將結果數組放入Set中 。 設置對象就像一個數組,但是每個值只存儲1個。
var set = new Set(yourString.split(","));
var distinctValues = Array.from(set).join();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.