javascript Set内に指定した配列が含まれているか判定する

javascript Set内に指定した配列が含まれているか判定する

javascriptで、Set内に指定した配列が含まれているか判定するサンプルコードを掲載してます。ブラウザはchromeを使用しています。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 105.0.5195.127

指定した配列が含まれているか判定

et内に指定した配列が含まれているか判定するには、「set」を「for-in」でループさせて「toString」で比較することで可能です。

const s = new Set([['aaa', 'bbb'], 'ccc', ['ddd', 'eee']]);

let flg = false;

const arr = ['ddd', 'eee'];

for (const item of s) {
  if (item.toString() === arr.toString()) {    
    flg = true;
    break;
  }
}

console.log(flg); // true

「has」を使用すると「false」が返ります。

const s = new Set([['aaa', 'bbb'], 'ccc', ['ddd', 'eee']]);

const arr = ['aaa', 'bbb'];

console.log(s.has(arr)); // false

また、以下のように配列を参照させて使用すると、期待する結果は得られます。

const arr = ['aaa', 'bbb'];

const s = new Set([arr, 'ccc', ['ddd', 'eee']]);

console.log(s.has(arr)); // false