JavaScriptで連想配列を操作するときの注意点
参考記事
Javascript 連想配列(オブジェクト)をforEachでループさせたい。
「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']);