配列とSetの違い
#JavaScript #配列 #Set
配列にはリテラルがあるが、Setには無い
const array = [1, 2, 3]
const set = new Set([1, 2, 3])
作るにはnew Set()と書く必要がある。初期値の配列は省略可能
配列は同じ要素を複数追加できるが、Setは重複したものは無視される
[1, 2, 1] // > (3) [1, 2, 1]
new Set([1, 2, 1]) // > Set(2) {1, 2}
配列は先頭/末尾に値を追加したり取り出したりできるが、Setは値の追加と削除しかできない
array.shift() / array.unshift('value') / array.push('value') / array.pop()
set.add('value') / set.delete('value')
配列はインデックスを元に要素を更新できるけど、Setは削除しかできない
array[2] = 1
set.delete('3')
配列はインデックスを元に要素にアクセスできるけど、Setは値が存在するか確認することしかできない
array[2] // > 3
set.has(3) // > true
配列は多くのメソッドで様々な操作ができる。Set も削除や追加などに加えて difference, intersection, symmetricDifference, union などの集合演算のメソッドや、 isDisjointFrom, isSubsetOf, isSupersetOf のような集合比較のメソッドを持っている。
array.map(n => n + 1) / array.filter(n => n > 1) / array.reduce((p, c) => p + c)
set.add('value') / set.delete('value')
他にもいくつかメソッドがあるが、配列は3倍近くの数ある