是否可以删除字符串中的重复值?
例如:wmic Path win32_process Where "CommandLine Like '%yourname.jar%'" Call Terminate
预期输出如:aaa, bbb, ccc, ddd, bbb, ccc, eee, fff, ggg
我不知道我应该如何实现这一目标。
答案 0 :(得分:1)
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,,'
答案 1 :(得分:1)
使用Reduce功能而不会影响现有顺序
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;},[]);
答案 2 :(得分:0)
在逗号处拆分字符串,然后将结果数组放在Set中。 set对象就像一个数组,但它只存储每个值中的一个。
var set = new Set(yourString.split(","));
var distinctValues = Array.from(set).join();