スタートページJavascript

連想配列(Map型データ)



Mapクラス

Obj配列とMap配列の違い

連想配列の定義の違い key と value のペア

Objectクラスでの定義
    var Obj配列 = {"氏名":"阿部", "学部":"文学部", "年齢":20};
  あるいは
    var Obj配列 = {};
        Obj配列["氏名"] = "阿部";
        Obj配列["学部"] = "文学部";
        Obj配列["年齢"] = 20;
  のように、key と value が「:」で区分されたペアであり、
 複数のペアを1つの { } に記述できました。

Mapクラスでの定義
    var Map配列 = new Map( [
        ["氏名", "阿部"],
        ["学部", "文学部"],
        ["年齢", 20]
    ] );
  あるいは、
    var Map配列 = new Map();
        Map配列.set("氏名", "阿部");    // 追加には set を使う
        Map配列.set("学部", "文学部");
        Map配列.set("年齢", 20);
 のように、一つの要素の key と value が一つの配列であり、「:」ではなく、「,」で仕切られます。

要素の取出し方の違い

Objectクラス
    Obj配列 = [object Object]
    Obj配列["氏名"] = 阿部
    Obj配列.氏名 = 阿部
Mapクラス
    Map配列 = [object Map]
    Map配列.get("氏名") = 阿部  // 取出しにはget(key) を用いる
    Map配列.氏名 = undefined    // このような記述はできない

Mapクラスは、個々の要素を対象にした処理の記述が複雑ですが、次のような利点もあります。


Mapクラスの2次元配列

メソッド	説明
set()	1つのデータを追加する
get()	1つのデータを取得する
delete()	1つのデータを除外する
clear()	データをすべてクリアする
has()	データが存在するか調べる

基本形
  配列.map( function( value, index, array ) {   });

      { index:value }
        value:配列の値
        key:配列のインデックス番号
        array:現在処理している配列





/* // 値だけ列挙 for(let value of map.values()) console.log(value); var Obj配列 = {}; Obj配列.阿部 = {学部:"文学部", 年齢:20}; Obj配列.井上 = {学部:"工学部", 年齢:20}; Obj配列.宇野 = {学部:"文学部", 年齢:2012}; alert(Obj配列.阿部.学部); var Map配列 = new Map( [ [ ["氏名", "阿部"], [ ["学部", "文学部"], ["年齢", 20] ] ] ] ); 経過 += 'Map配列=' + Map配列 + '
'; document.getElementById(表示場所).innerHTML = 経過; Map配列.forEach(function(value){ 経過 += arguments; document.getElementById(表示場所).innerHTML = 経過; } }); } */