Setオブジェクトを使って重複した値を取り除いた配列を作成する

image.png (59.9 kB)

TOC

Set

配列の重複した値を取り除きたい場合はSetオブジェクトを使用すると簡単に実現する事ができます。

let array = [0, 1, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6]
array = new Set(array)
// [0, 1, 2, 3, 4, 5, 6]

また、Setオブジェクトのインスタントプロパティ.sizeはオブジェクト内に格納されている値の数を返します。 これを使って、受け取った配列に重複があるか調べるここともできます。

const array = ['a', 'b', 'b', 'c', 'd', 'e', 'f', 'g']
function isDuplicateValues(arr) {
  return arr.length !== new Set(arr).size
}
isDuplicateValues(array) // true

それ以外にも、

  • 引数で渡された値を追加するadd()
  • 引数で渡された値を取り除くdelete()
  • 引数で渡された値がオブジェクト内に存在するか真偽値で返すhas()

といったインスタントメソッドも用意されています。

const numSet = new Set()
numSet.add(2)
numSet.has(2) // true
numSet.delete(2)
numSet.has(2) // false

参考

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Set

CONTACT
© 2023, Kakkiii All Rights Reserved.