- ベストアンサー
連想配列と配列(Array)が複合するものの生成方法について
たとえばJSONで var listnerData = {listner:[ {elmId:'search_member',evtName:'click',funcName:'SearchMember'} ] } のように定義されるものの読み出し方はわかったのですが、上記を通常の定義方法で作成するにはどうすればよいのでしょうか。 最初にobject型で定義した変数に対して、配列をぶらさげようとするとエラーになります。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>別の変数に既に入ってしまっている場合はどう処理すれば良いですか? var json1 = {elmId:'search_member',evtName:'click',funcName:'SearchMember'}; var listnerData = new Object; if(listnerData.listner == undefined){ listnerData.listner = new Array(); } listnerData.listner.push(json1); alert(listnerData.listner[0].elmId); のようにするか var listnerData = {listner : new Array() }; listnerData.listner.push(json1); のようにすればいいかと思います。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
var listnerData = new Object; listnerData.listner = [ {elmId:'search_member',evtName:'click',funcName:'SearchMember'} ]; で良いと思います。
補足
なるほど。 一件目の登録時には配列をそのまま代入してしまうという方法が使えるわけですね。 ありがとうございます。 更に質問なのですが、このケースで{elmId:'search_member',evtName:'click',funcName:'SearchMember'} が別の変数に既に入ってしまっている場合はどう処理すれば良いですか? 一旦ダミーで listnerData.listner = []; とでもしてから listnerData.listner[0] に対して代入するくらいしかないでしょうか?
お礼
ありがとうございます。 pushメソッドというのは書籍にも具体的な例が載っておらず、こういう使い方ができるものだとは知りませんでした。 とても助かりました。 類似の件でもう少し知恵をお貸し願いたいのですが、別の質問として登録することにします。