JavaScript/連想配列操作/Map クラス

JavaScript/連想配列操作/Map クラス

最近の JS では Map クラスという連想配列専用のクラスができたので連想配列的操作をしたい場合は Object ではなくこちらを使うのがスジだろう。

作り方

let hoge = new Map();

値を入れる

put じゃなくて set だよ

let hoge = new Map();
hoge.set("きー", "ばりゅー");

値を取り出す

let hoge = new Map();
hoge.set("きー", "ばりゅー");
let k = hoge.get("きー");

このキーであるが、Object を連想配列としていた場合は全部文字列っぽいものとして処理していたが、 Mapの場合は型の厳密性がある。数値っぽい文字列と数値は別物として扱われる。

格納している値だけを走査する

このようにする。

let hoge = piyo.values();
for(let v of hoge){
}

コレの注意点としてはこの values が返しているのは iterator であって、Array では無いということ。 この iterator は元の Map と参照として切れておらず繋がっていて、元の Map の変化に追従する。 つまり元 Map を走査中に変化させると、走査量が変化する。

格納している値だけを配列化する

let hoge = Array.from(piyo.values());

values は Map への参照が切れておらず、状況によっては使い勝手が悪いので、普通にその時点の配列として取り出したい場合。

javascript/ope/map_ope/map_class.txt · 最終更新: 2021-06-02 15:59 by ore