LoginSignup
12
10

More than 5 years have passed since last update.

ECMAScript6 ~ MapとSet ~

Last updated at Posted at 2015-11-24

先日、ES6のMapを使っての実装をする機会があったので、改めてMapとSetを学んでみようと思います。

Map

他のプログラミング言語では通常サポートされているようなのですが、Javascriptでは初めて。データを格納するためのデータ構造です。

// Mapの生成
let map = new Map();

// 値の設定
map.set('key1', 'value1');

// 値の取得
let key = map.get('key1'); // 'value1'

// 格納したデータ数
map.size; // 1

// 存在確認
map.has('key1'); // true

// データの削除
map.delete('key1');
map.clear(); // 全削除

// keyを取得
let keys = map.keys(); // => MapIteratorが取得できる

// valueを取得
let values = map.values(); // => MapIteratorが取得できる

for (var key of keys) {
    console.log(key);
}

// 値の取得(forEach)
map.forEach(function (value, key, map) {
    console.debug(value, key, map);
});

objectでデータを格納するよりも、map.keys()やmap.has()にて取得ができるので、使いやすいかと思います。

Set

Setのインスタンスには同一の値は追加できません。

// 初期化
let set = new Set();

// 値の追加
set.add('val1');

// 値の存在確認
set.has('val1'); // true

// 値の削除
set.delete('val1');

// 格納してあるデータ数
set.size; // => 1

// 値の取得(values)
set.values()

// 値の取得(entities)
set.entries()

// 値の取得(forEach)
set.forEach(function (val1, val2, set) {
    console.debug(value1, value2, set);
});

オブジェクトを操作をする際には、MapやSetを使って、うまく値を格納できるようになりたいと思います。

参考

[JavaScript] ECMAScript6のMapとSetを使ってみよう

12
10
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
12
10