JavaScriptで連想配列を操作するときの注意点

2020年4月13日

参考記事

Javascript 連想配列(オブジェクト)をforEachでループさせたい。

Javascriptって2次元の連想配列できないの?

「for-in」でループ処理をする方法、「forEach」でループ処理をする方法

まとめ

  • 連想配列(オブジェクト)は配列とは違うので配列の組み込みメソッド(popやspliceなど)は使えない。
  • for in 文はOK
  • forEachは Object.keys( 連想配列 ).forEach( ループ処理, 連想配列 )

連想配列をforEachでループさせるには

var obj = { first: '暁', second: '響', third: '雷', fourth: '電' };

Object.keys(obj).forEach(function(key) {
  var val = this[key]; // this は obj
  console.log(key, val);
}, obj); // 第二引数に obj を渡す

/* ↓ 出力
first 暁
second 響
third 雷
fourth 電
*/

引用元

2次元連想配列(オブジェクト)

const object = 
{
  "1":{
      "name":"name1",
      "id":"id1",
      "pass":"pass1"
  },
  "2":{
      "name":"name2",
      "id":"id2",
      "pass":"pass2"
  },
  "3":{
      "name":"name3",
      "id":"id3",
      "pass":"pass3"
  }
};

Object.keys(object).forEach(keyX => {
		console.log(object[keyX]['name']);
})

/* ↓ 出力
name1
name2
name3
*/

2次元の連想配列に値を追加するには

//TypeB
TypeB = {};
// TypeA['hoge']['fuga'] = 'piyo'; =>TypeA['hoge']はObjectではないのでfugaプロパティが追加できない(配列的に扱えない)!
TypeB['hoge'] = {fuga : 'piyo'}; 
alert(TypeB['hoge']['fuga']);

引用元