文字列内の重複した値を削除することはできますか?文字列内の同じ値を削除する
例えば:aaa, bbb, ccc, ddd, bbb, ccc, eee, fff, ggg
予想される出力は次のようになる:aaa, bbb, ccc, ddd, eee, fff, ggg
私はどのように私はこれに達成すべきは考えています。 String.prototype.match()
とArray.prototype.filter()
機能使用
文字列内の重複した値を削除することはできますか?文字列内の同じ値を削除する
例えば:aaa, bbb, ccc, ddd, bbb, ccc, eee, fff, ggg
予想される出力は次のようになる:aaa, bbb, ccc, ddd, eee, fff, ggg
私はどのように私はこれに達成すべきは考えています。 String.prototype.match()
とArray.prototype.filter()
機能使用
EcmaScript5ソリューション:それはまた'aaa, bbb,, ccc, ddd, bbb, ccc? eee,, fff, ggg,,'
はそれがconsole.logなのかそれとも[]と ""が出力に表示されますか? – Damon
@Damon、注意してください、答えは、期待される出力を返します。空の文字列はありません。 – RomanPerekhrest
完璧です。これは特に最後のjoinコマンドで効果的です! – Damon
スプリットなど洗練された入力文字列はカンマで文字列をカバーします
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(', '));
をし、次にresuを置くlt配列はSetです。 setオブジェクトは配列のようなものですが、各値のうちの1つのみを格納します。
var set = new Set(yourString.split(","));
var distinctValues = Array.from(set).join();
アウトと機能を減らして使用して、既存の秩序
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;},[]);
文字列または配列を乱しますか? –
@SandeepNayak文字列 – Damon
これまでに試したことを示すことはできますか? –