配列内の重複を削除する方法(JavaScript)
例えば下記のような配列の重複を削除したい場合
['AAA', 'BBB', 'AAA', 'BBB', 'CCC'] ↓ ['AAA', 'BBB', 'CCC']
reduce
を使えばシンプルに書けそう。
Array.prototype.reduce() - JavaScript | MDN
const list = ['AAA', 'BBB', 'AAA', 'BBB', 'CCC']; const duplicateDeletionList = list.reduce((resultList, currentValue) => { if(!resultList.includes(currentValue)) resultList.push(currentValue); return resultList; },[])
ここで使用している Array.prototype.includes()
はIEでは使えないので、ポリフィルを適用するか、代わりにindexOf
を使用する形となる。
Array.prototype.includes() - JavaScript | MDN
Array.prototype.indexOf() - JavaScript | MDN
サラッとした動作確認していないが、たぶん下記のコードで行けるかと思う。
const list = ['AAA', 'BBB', 'AAA', 'BBB', 'CCC']; const duplicateDeletionList = list.reduce((resultList, currentValue) => { if(resultList.indexOf(currentValue) === -1) resultList.push(currentValue); return resultList; },[])