0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SetとMap

Last updated at Posted at 2024-05-04

JavaScriptのMapとSetの挙動について

今回はMapとSetを整理するために記事を書くことにしました。

そもそもMapとSetとは?

Map -> キーと値がセットのデータの入れ物
Set -> 重複する値を許さないデータの入れ物

ObjectとMapの比較

Objectも同様にキーと値がセットになっているデータですが、
その二つの違いを下のテーブルにまとめてみます。

Object Map
キー 文字列 制約なし
列挙順 曖昧 挿入順
for...in 不可
for...of 不可

MapはObjectと同様にすでに同じキーがある場合は後で設定した値が上書きされる。

Mapの主なメソッド

new Map() -> mapコンストラクタからインスタンス化をして、mapオブジェクトを作成

map.set(key, value) -> 第一引数にキー、第2引数に値をそれぞれ渡して設定

map.get(key) -> キーの値を取得

map.delete(key) -> キーの値を削除

map.size() -> mapの要素数を取得

map.has(key) -> Mapオブジェクト内に対応するvalueがあるかの論理値を返却

SetとArrayの比較

SetArrayの大きな違い-> Setは重複した値を許さない

const mySet = new Set(); //新しいSetインスタンスを作成

// Setに値を追加
mySet.add(1);
mySet.add(5);
mySet.add("Hello");
mySet.add({ a: 1, b: 2 });


// Setの内容をコンソールに表示
console.log(mySet); // Set(4) { 1, 5, 'Hello', { a: 1, b: 2 } }


// 同じ値を追加しても無視される
mySet.add(1);
console.log(mySet);  // Set(4) { 1, 5, 'Hello', { a: 1, b: 2 } }

Setの主なメソッド

new Set() -> setコンストラクタからインスタンス化をして、setオブジェクトを作成

set.clear() -> すべての要素をSetオブジェクトから取り除く

set.delete(value) -> valueの要素を取り除き、要素の削除に成功したか否かの論理値を返す

set.add(value) -> Setオブジェクト内に同じ値を持つ要素が存在しない場合のみ指定した値を持つ要素を挿入

set.has(value) -> Setオブジェクト内にvalueがあるかどうかの論理値を返す

set.entries() -> ``Setオブジェクト内の各要素を[value,value]の配列が挿入順で返却

set.has(value) -> Setオブジェクト内にvalueが存在するかの論理値を返却

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?