連想配列の中に連想配列があるときの、key、valueの取り出し方で悩んだ。
例えば、以下のような連想配列があるときに、
var persons = {
Taro: {height: 1.8, weight: 75},
Jiro: {height: 1.7, weight: 60},
};
以下のように中身の連想配列を取得できる。
persons.Taro;
=> {height: 1.8, weight: 75}
そして以下のようにheightを取得できる。
console.log(persons.Taro.height);
=> 1.8
悩んだのが、入れ子の中の連想配列の値を取得する方法。
最初はこう書いてしまった。
persons.key.height
これでは取得できない。
正しくは、
persons[key].height
persons[key]
で、値(=外の連想配列の値)が取れる。
{height: 1.7, weight: 70}
その上で中の連想配列の値を取りたいので、
persons[key].height
となる。
var persons = {
Taro: {height: 1.8, weight: 75},
Jiro: {height: 1.7, weight: 60},
};
for (var key in persons) {
console.log(key + "さん");
console.log("身長は" + persons[key].height +"mです");
console.log("体重は" + persons[key].weight +"kgです");
}
コンソール
Taroさん
身長は1.8mです
体重は75kgです
Jiroさん
身長は1.7mです
体重は60kgです