どうも、ちょげ(@chogetarou)です。
配列(array)の重複する同じ値を削除する方法を紹介します。
方法

配列(array)の重複する同じ値を削除する方法は、3つあります。
Set + スプレッド構文
1つ目は、Setとスプレッド構文を使う方法です。
まず、Array.from()を呼び出します。
そして、Array.from()の引数に、配列をSetに変換した結果を指定します。
//array=配列
const result: T[] = Array.from(new Set(array))
上記のArray.from()は、配列から重複する同じ値を削除した配列(Array)を返します。
使用例
const nums: number[] = [1, 2, 2, 1, 2, 3, 1, 3]
const result: number[] = Array.from(new Set(nums))
console.log(result)
出力:
[1, 2, 3]
Set + Array.from()
2つ目は、SetとArray.from()を使う方法です。
まず、[…]を記述します。
そして、「…」の右辺に、配列をSetに変換した結果を指定します。
//array=配列
const result: T[] = [...new Set(array)]
上記のスプレッド構文は、配列から重複する同じ値を削除した配列(Array)を返します。
使用例
const nums: number[] = [1, 2, 2, 1, 2, 3, 1, 3]
const result: number[] = [...new Set(nums)]
console.log(result)
出力:
[1, 2, 3]
filter()
3つ目は、filter()を使う方法です。
まず、配列からfilter()を呼び出します。
filter()の引数に、2つの引数を持つラムダ式を指定します。
ラムダ式で、配列から呼び出したindexOf()とラムダ式の第2引数を「===」で比較します。
indexOf()の引数に、ラムダ式の第1引数を指定します。
//array=配列
const result: T[] = array.filter((value, index) => array.indexOf(value) === index)
上記のfilter()は、配列から重複する同じ値を削除した配列(Array)を返します。
使用例
const nums: number[] = [1, 2, 2, 1, 2, 3, 1, 3]
const result: number[] = nums.filter((value, index) => nums.indexOf(value) === index)
console.log(result)
出力:
[1, 2, 3]
まとめ
配列(array)の重複する同じ値を削除する方法は、次の3つです。
- Setとスプレッド構文を使う方法
const result: T[] = Array.from(new Set(array))
- SetとArray.from()を使う方法
const result: T[] = [...new Set(array)]
- リストを使う方法
const result: T[] = array.filter((value, index) => array.indexOf(value) === index)
コメント