63
78

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

連想配列の中の連想配列でkeyとvalueを取り出す方法

Last updated at Posted at 2017-03-08

連想配列の中に連想配列があるときの、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です
63
78
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
63
78

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?