どうも、ちょげ(@chogetarou)です。
Map(マップ)をループする方法を紹介します。
キーのみをループ

Map(マップ)のキー(key)のみをループする方法は、2つあります。
for…of文
ひとつは、for…of文を使う方法です。
まず、for…of文を記述します。
for…of文のループ対象(ofの右辺)に、対象のMapから呼び出したkeys()の結果を指定します。
そして、for…of文のループ処理を指定します。
ループ処理では、ループ変数でキーを取得できます。
//map=対象のマップ
for (const key of map.keys()) {
//ループ処理
//変数「key」でキーを取得
}
上記のfor…of文は、対象のMap(マップ)のキー(key)をループします。
使用例
const nums = new Map();
nums.set("one", 1);
nums.set("two", 2);
nums.set("three", 3);
nums.set("four", 4);
nums.set("five", 5);
for (const key of nums.keys()) {
console.log(key);
}
出力:
one
two
three
four
five
forEach()
もうひとつは、forEach()を使う方法です。
まず、Mapからkeys()を呼び出し、keys()の結果を配列に変換します。
次に、変換した配列からforEach()を呼び出します。
forEach()の引数に、1つの引数を持つ関数を指定します。
関数の処理に、ループ処理を記述します。
(関数の引数で、Mapのキーを取得)
//map=対象のマップ
[...map.keys()].forEach(function (key) {
//ループ処理
//「key」でキーを取得
})
上記のforEach()は、対象のMap(マップ)のキー(key)をループします。
使用例
const nums = new Map();
nums.set("one", 1);
nums.set("two", 2);
nums.set("three", 3);
nums.set("four", 4);
nums.set("five", 5);
[...nums.keys()].forEach(function (key) {
console.log(key);
});
出力:
one
two
three
four
five
値のみをループ

Map(マップ)の値(value)のみをループする方法は、2つあります。
for…of文
ひとつは、for…of文を使う方法です。
まず、for…of文を記述します。
for…of文のループ対象(ofの右辺)に、対象のMapから呼び出したvalues()の結果を指定します。
そして、for…of文のループ処理を指定します。
ループ処理では、ループ変数で値を取得できます。
//map=対象のマップ
for (const value of map.values()) {
//ループ処理
//変数「value」で値を取得
}
上記のfor…of文は、対象のMap(マップ)の値(value)をループします。
使用例
const nums = new Map();
nums.set("one", 1);
nums.set("two", 2);
nums.set("three", 3);
nums.set("four", 4);
nums.set("five", 5);
for (const value of nums.values()) {
console.log(value);
}
出力:
1
2
3
4
5
forEach()
もうひとつは、forEach()を使う方法です。
まず、Mapからvalues()を呼び出し、values()の結果を配列に変換します。
次に、変換した配列からforEach()を呼び出します。
forEach()の引数に、1つの引数を持つ関数を指定します。
関数の処理に、ループ処理を記述します。
(関数の引数で、Mapの値を取得)
//map=対象のマップ
[...map.values()].forEach(function (value) {
//ループ処理
//「value」で値を取得
})
上記のforEach()は、対象のMap(マップ)の値(value)をループします。
使用例
const nums = new Map();
nums.set("one", 1);
nums.set("two", 2);
nums.set("three", 3);
nums.set("four", 4);
nums.set("five", 5);
[...nums.values()].forEach(function (value) {
console.log(value);
});
出力:
1
2
3
4
5
キーと値をループ

Map(マップ)のキー(key)と値(value)を一緒にループする方法は、2つあります。
for…of文
ひとつは、for…of文を使う方法です。
まず、for…of文を記述します。
for…of文のループ対象(ofの右辺)に、対象のMapを指定します。
for…of文のループ変数に、「[key, value]
」(key=キー、value=値)を指定します。
そして、for…of文のループ処理を指定します。
//map=対象のマップ
for (const [key, value] of map) {
//ループ処理
//「key」でキー、「value」で値を取得
}
上記のfor…of文は、対象のMap(マップ)のキー(key)と値(value)をループします。
使用例
const nums = new Map();
nums.set("one", 1);
nums.set("two", 2);
nums.set("three", 3);
nums.set("four", 4);
nums.set("five", 5);
for (const [key, value] of nums) {
console.log(key + ":" + value);
}
出力:
one:1
two:2
three:3
four:4
five:5
forEach()
もうひとつは、forEach()を使う方法です。
まず、MapからforEach()を呼び出します。
forEach()の引数に、2つの引数を持つ関数を指定します。
そして、関数のブロックに、ループ処理を指定します。
関数では、第1引数で値、第2引数でキーを取得できます。
//map=対象のマップ
map.forEach(function(value, key) {
//ループ処理
//「「value」で値、key」でキーを取得
})
上記のforEach()は、対象のMap(マップ)のキー(key)と値(value)をループします。
使用例
const nums = new Map();
nums.set("one", 1);
nums.set("two", 2);
nums.set("three", 3);
nums.set("four", 4);
nums.set("five", 5);
nums.forEach(function(value, key) {
console.log(key + ":" + value);
})
出力:
one:1
two:2
three:3
four:4
five:5
まとめ
Map(マップ)のキー(key)のみをループする方法は、次の2つです。
- for…of文を使う方法
for (const key of map.keys()) { /*ループ処理*/ }
- forEach()を使う方法
[...map.keys()].forEach(function (key) {/*ループ処理*/ })
Map(マップ)の値(value)のみをループする方法は、次の2つです。
- for…of文を使う方法
for (const value of map.values()) { /*ループ処理*/ }
- forEach()を使う方法
[...map.values()].forEach(function (value) {/*ループ処理*/ })
Map(マップ)のキー(key)と値(value)をループする方法は、次の2つです。
- for…of文を使う方法
for (const [key, value] of map) { /*ループ処理*/ }
- forEach()を使う方法
map.forEach(function(value, key) {/*ループ処理*/ })
コメント