2016-05-24 7 views
0

に大文字と小文字の区別を無視して重複を削除私はこのようになりますjavascript配列があります。Javascriptの分割文字列と結果の配列

["polyester", "cotton", "Polyester, Nylon", "Cotton, Acrylic", "Polyester, fiber", "nylon, Leather"] 

を私はこれに、この配列を変化させたいと思います:

これは、文字列をコンマで区切り、大文字と小文字の区別を無視して重複を削除します。 私はSOに関する他の質問を見ました。それらは、配列から重複を削除する方法、または配列内の多くの文字列ではなく、コンマで単一の文字列を分割する方法を説明します。私はでそれを解決しようとしています:

mutated = a.filter(function(item, pos) { 
return a.indexOf(item) == pos; 
}) 

が、これは、配列にして、カンマ区切りの文字列を分割しません。私は大文字と小文字の区別を無視して複製を分割したり削除したりするソリューションを求めています。

+0

(http://stackoverflow.com/questions/9229645/remove-duplicates-from-javascript-array) – PseudoAj

+0

[JavaScriptのArrayから重複を削除]の可能重複するものにいくつかのより多くの情報を提供してください。あなたが行った研究、あなたが試したこと、実行している問題など –

+0

@pseudoAJ私は詳細を質問で編集しました。 –

答えて

2

ここには簡単な解決策があります。元の大文字の項目は保持されませんが、元の配列の順序のみに基づいているため、その理由はわかりません。

// we join the original items to a long string, then split it up 
 
var items = original.join (',').split (/\s*,\s*/); 
 

 
// we make all items lowercase uniformly 
 
items = items.map (function (item) { 
 
    return item.toLowerCase(); 
 
}); 
 

 
// we put new items in a unique list 
 
var uniqueItems = []; 
 
items.forEach (function (item) { 
 
    if (uniqueItems.indexOf (item) < 0) { 
 
    uniqueItems.push (item); 
 
    } 
 
});