javascriptの連想配列

【実行画面】

【Source Code】
<script type="text/javascript">
  var result = new Array();
  result["int1"] = 3;
  result["int2"] = 567;
  result["chr1"] = "X";
  result["chr2"] = "ABC";
  result["float1"] = 1.2;
  result["float2"] = 3.456;

  document.write(result["int1"] + "<br>");
  document.write(result["chr2"] + "<br>");

  document.write("----------------<br>");
  for(var key in result)
  {   var data = result[key];
      document.write(key + ": " + data + "<br>");
  }
</script>

連想配列とは、キーになる文字列とその値を対で定義した配列です。
普通の配列は index(格納されている番号)で参照しますが、連想配列はキーで参照します。
連想配列 result を定義して、int 型, 文字列型, 実数型を格納します。
<script type="text/javascript">
  var result = new Array();
  result["int1"] = 3;
  result["int2"] = 567;
  result["chr1"] = "X";
  result["chr2"] = "ABC";
  result["float1"] = 1.2;
  result["float2"] = 3.456;

連想配列 result を文字列をキーにして参照してみました。
  document.write(result["int1"] + "<br>");
  document.write(result["chr2"] + "<br>");

連想配列 result に格納されているキーと値を対で印字します。
  document.write("----------------<br>");
  for(var key in result)
  {   var data = result[key];
      document.write(key + ": " + data + "<br>");
  }

次の方法は使えませんでした。
連想配列に対して「名前.length や Index 番号で参照する手法は使えない?」ようで、次のコードでは何も表示されませんでした。
また document.write に配列名を指定する方法も連想配列では何も表示されませんでした。
  for(i=0; i<result.length; i++)
  {   document.write(result[i] + "<br>");
  }
  document.write(result); 

連想配列の初期値&削除

【実行画面】

【Source Code】
<script type="text/javascript">
  var ary = { v1: 1, v2: 2, v3: 3, v4: 999 };
  for(var key in ary)
  {   var data = ary[key];
      document.write(key, ": ", data, "<br>");
  }

  document.write("----------------<br>");
  var w = "v1";
  document.write('var w="v1" --- ary[w]: ', ary[w], "<br>");
  w = "v4";
  document.write('var w="v4" --- ary[w]: ', ary[w], "<br>");

  delete ary[w];
  ary["v5"] = 15;
  ary["v6"] = 26;
  document.write("----------------<br>");
  for(var key in ary)
  {   var data = ary[key];
      document.write(key, ": ", data, "<br>");
  }
</script>

キーと値を対にして、連想配列に初期値として設定することも出来ます。
<script type="text/javascript">
  var ary = { v1: 1, v2: 2, v3: 3, v4: 999 };
  for(var key in ary)
  {   var data = ary[key];
      document.write(key, ": ", data, "<br>");
  }

連想配列のキーを変数に格納します。
w に "v1" を格納して v1 の値 1 を印字します。
w に "v4" を格納して v4 の値 999 を印字します。
  document.write("----------------<br>");
  var w = "v1";
  document.write('var w="v1" --- ary[w]: ', ary[w], "<br>");
  w = "v4";
  document.write('var w="v4" --- ary[w]: ', ary[w], "<br>");

連想配列の削除と追加です。
w のセルを削除します。(w="v4")
"v5", "v6" を追加します。
  delete ary[w];
  ary["v5"] = 15;
  ary["v6"] = 26;
  document.write("----------------<br>");
  for(var key in ary)
  {   var data = ary[key];
      document.write(key, ": ", data, "<br>");
  }
</script>

連想配列のソート

【実行画面】

【Source Code】
<script type="text/javascript">
  var ary = [ { id:"red", cor:"赤" },
              { id:"blue", cor:"青" },
              { id:"green", cor:"緑" },
              { id:"yellow", cor:"黄" },
              { id:"bleck", cor:"黒" } ];
  for(i=0; i<ary.length; i++ )
  {   document.write(ary[i]["id"] + ":" + ary[i]["cor"] + "<br>");
  }

  document.write("----------------<br>");
  ary.sort(function(a, b) {
        return (a.id < b.id) ? -1 : 1;
    });
  for(i=0; i<ary.length; i++ )
  {   document.write(ary[i]["id"] + ":" + ary[i]["cor"] + "<br>");
  }
</script>

連想配列をソートするときは、次のように定義します。
<script type="text/javascript">
  var ary = [ { id:"red", cor:"赤" },
              { id:"blue", cor:"青" },
              { id:"green", cor:"緑" },
              { id:"yellow", cor:"黄" },
              { id:"bleck", cor:"黒" } ];
  for(i=0; i<ary.length; i++ )
  {   document.write(ary[i]["id"] + ":" + ary[i]["cor"] + "<br>");
  }

id で昇順にソートして印字してみました。
降順でソートするときは -1 と 1 を入れ替えて下さい。
  document.write("----------------<br>");
  ary.sort(function(a, b) {
        return (a.id < b.id) ? -1 : 1;
    });
  for(i=0; i<ary.length; i++ )
  {   document.write(ary[i]["id"] + ":" + ary[i]["cor"] + "<br>");
  }
</script>

前田稔の超初心者のプログラム入門
超初心者のプログラム入門(JavaScript)