menu
書いてる野郎
orebike@gmail.com
最近の 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 への参照が切れておらず、状況によっては使い勝手が悪いので、普通にその時点の配列として取り出したい場合。