Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

setで配列を追加するときに注意すること。

実際のところ

var set = new Set()

set.add(1)
set.add(2)
set.add(3)
set.add([1,1])
set.add([1,3])
// Set { 1, 2, 3, [ 1, 1 ], [ 1, 3 ] }

ナカミを確認します。
普通の数値なら難なく確認できますが……配列だと駄目です。

> set.has(1)
true
> set.has([1,1])
false

ここで、配列を格納した変数を生成し、setに追加してみると……ちゃんと認識します。

ary = [2,2]
set.add(ary)
// Set { 1, 2, 3, [ 1, 1 ], [ 1, 3 ], [ 2, 2 ] }

set.has(ary)
// true

参考もと