at backyard

Color my life with the chaos of trouble.

配列内の重複を削除する方法(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;
},[])