JavaScript Map&Setオブジェクトのいろいろ
JavaScript Map&Setオブジェクトのいろいろ:
Mapオブジェクトは一意のキーを持ち、連想配列として表現することができる。Mapオブジェクトのメソッドを使用し要素の追加、削除、取得等が可能。
Setオブジェクトは一意の値を持つ要素の集合。Setオブジェクトのメソッドを使用し要素の追加、削除、取得等が可能。キーを持たないMapのようなもの。setではなくaddで値の追加を行う。他のメソッドはMapとほぼ同じ。Setを使用すればユニークな配列を簡単に作れます。
こちらもMapとほぼ同じ。
Mapは一意なキーを用いて値を管理する。
Setは一意な値を管理する。
どちらも追加、削除、取得等のメソッドで操作が行える。
Map - JavaScript | MDN
Set - JavaScript | MDN
スプレッド構文 - JavaScript | MDN
Mapオブジェクト
Mapオブジェクトは一意のキーを持ち、連想配列として表現することができる。Mapオブジェクトのメソッドを使用し要素の追加、削除、取得等が可能。
要素の操作
let map = new Map(); // setでキーに値を設定する。キーには文字列も数値も使える。 map.set(1, "one"); map.set("2", "two"); map.set("three", 3); console.log(map); // Map(3) {1 => "one", "2" => "two", "three" => 3} // sizeで要素数を返す。 map.size; // 3 // getでキーに関連した値を取り出す。 map.get(1); // "one" // 既存のキーをsetした場合、値が上書きされる。 map.set(1, "first"); map.get(1); // "first" // hasで真偽値を返す。存在すればtrue、存在しなければfalseを返す。 map.has(1) // true map.has(2) // false // deleteで値を削除できる。削除すればtrue、もともと存在しなかった場合falseを返す。 map.set(1, "first"); console.log(map); // Map(3) {1 => "first", "2" => "two", "three" => 3} map.delete(1) // true console.log(map); // Map(2) {"2" => "two", "three" => 3} map.delete(1) // false
繰り返し処理
let map = new Map(); map.set(1, "one"); map.set(2, "two"); map.set(3, "three"); //forEachで繰り返し処理できる。 map.forEach((value, key) => { console.log(`${key} = ${value}`); }); // 1 = one // 2 = two // 3 = three // for..ofループでも繰り返し可能 for (let [key, value] of map) { console.log(`${key} = ${value}`); } // 1 = one // 2 = two // 3 = three
Setオブジェクト
Setオブジェクトは一意の値を持つ要素の集合。Setオブジェクトのメソッドを使用し要素の追加、削除、取得等が可能。キーを持たないMapのようなもの。setではなくaddで値の追加を行う。他のメソッドはMapとほぼ同じ。Setを使用すればユニークな配列を簡単に作れます。let set = new Set(); // addでキーに値を設定する。キーには文字列も数値も使える。 set.add(1); set.add(2); set.add(3); console.log(set); // Set(3) {1, 2, 3} // sizeで要素数を返す。 set.size; // 3 // hasで真偽値を返す。存在すればtrue、存在しなければfalseを返す。 set.has(1) // true set.has(2) // false // deleteで値を削除できる。削除すればtrue、もともと存在しなかった場合falseを返す。 set.delete(1) // true console.log(set); // Set(2) {2, 3} set.delete(1) // false
繰り返し処理
こちらもMapとほぼ同じ。let set = new Set(); set.add(1); set.add(2); set.add(3); //forEachで繰り返し処理できる。 set.forEach((item) => { console.log(item); }); // 1 // 2 // 3 // for..ofループでも繰り返し可能 for (let item of set) { console.log(item); } // 1 // 2 // 3
Setでユニークな配列を生成する
// ...はスプレッド演算子。反復可能オブジェクトを分割展開し、値を渡して配列化している。 let array1 = [1, 2, 3, 2, 3] let array2 = [...new Set(array1)]; console.log(array2); // [1, 2, 3]
まとめ
Mapは一意なキーを用いて値を管理する。Setは一意な値を管理する。
どちらも追加、削除、取得等のメソッドで操作が行える。
参考
Map - JavaScript | MDNSet - JavaScript | MDN
スプレッド構文 - JavaScript | MDN
コメント
コメントを投稿