重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

javascript 連想配列の参照方法を教えてください。
以下のようなオブジェクトを参照したいとき
例えば、"赤"を参照するときの指定方法が、全然わからないので教えてください。

a[1].1.color だとエラーになりました。

a:[{1:[{color:"赤",value:"red"},{color:"青",value:"blue"}]},{2:[{color:"黄",value:"yellow"},{color:"青",value:"blue"}]}]

A 回答 (3件)

a[0]["1"][0]["color"]


または
a[0]["1"][0].color

0 は「配列」の添え字で、先頭要素は 0 から勘定します
"1" と "color" は「オブジェクト」または「連想配列」のプロパティです

プロパティの参照方法ですが、
"color" の様に名称が識別子の形式ならばドット表記できますが、
"1" の様に数字始まりならばブラケット表記をしなければいけません。
https://developer.mozilla.org/ja/docs/Web/JavaSc …
    • good
    • 0
この回答へのお礼

>"color" の様に名称が識別子の形式ならばドット表記できますが、
>"1" の様に数字始まりならばブラケット表記をしなければいけません。
ここの部分の記載で、とてもよくわかりました。
やっと解決できそうです。
ありがとうございます。

お礼日時:2021/04/25 02:44

先頭の a: が意味不明だが a= なら



a[0]["1"][0]["color"] か a[0]["1"][0].color

識別子として有効でないキーは [] に入れないとダメ。
    • good
    • 0
この回答へのお礼

ありがとうございます。
解決できそうです!

お礼日時:2021/04/25 02:46

こんにちは



そもそもですが、ご提示の記述は断片のみで、オブジェクトリテラルになっていません。

>a[1].1.color だとエラーになりました。
ですので、「a」の参照時点で失敗しているはずです。

仮に、
a = [{1:[{color:"赤",value:"red"},{color:"青",value:"blue"}]},{2:[{color:"黄",value:"yellow"},{color:"青",value:"blue"}]}];
だとしても、「赤」のデータを参照したければ、a[0] ~となるはずです。

更に、プロパティの識別子が数値の場合は、「有効な識別子」としては扱われないので、ドット記法は使えません。
ブラケット記法を使用すれば参照可能です。
https://developer.mozilla.org/ja/docs/Web/JavaSc …

上記のように、変数 a で配列(オブジェクト)を参照できる形式であれば、
console.log( a[0]['1'][0].color ); // 赤
console.log( a[1]['2'][0].color ); // 黄
    • good
    • 0
この回答へのお礼

>更に、プロパティの識別子が数値の場合は、「有効な識別子」としては扱われないので、ドット記法は使えません。
>ブラケット記法を使用すれば参照可能です

ここの回答で、とても理解できました。
ありがとうございます。

お礼日時:2021/04/25 02:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!