簡體   English   中英

刪除字符串中的相同值

[英]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.

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