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

2次元のハッシュをObjectを用いて作り、以下の様に第一キー固定で第二キーを取り出したいです。
-----------------------------------------------------------
hash = new Object;
hash[3] = new Object;
hash[3][1] = 3;
hash[3][2] = 6;
hash[3][3] = 9;

for (key in hash[3]){
 _root.debug+=key;
}
-----------------------------------------------------------
上記は上手く動かないので、以下の様に修正しました。
-----------------------------------------------------------
hash = new Object;
hash[3] = new Object;
hash[3][1] = 3;
hash[3][2] = 6;
hash[3][3] = 9;

tmp=hash[3];
for (key in tmp){
 _root.debug+=key;
}
-----------------------------------------------------------
いったんtmpに代入する事で期待通りの結果が得られましたが、スッキリしません。
Perl等の他言語では、「無名ハッシュ」という概念を表記化することができるので、Actionscriptでも良い表記方法がありましたら教えてください。

※オーサリングルールはParaFla! ActionSctiptは1.0相応です。

A 回答 (3件)

paraflaではそうなってしまうんですね。


失礼致しました。
    • good
    • 0

for (key in hash[3]){


}
これで正常に第二キーが取れています。
ただ_root.debugの中身がundefined321となってしまうのは
_root.debugが初期化されていないからです。

hash = new Object;
hash[3] = new Object;
hash[3][1] = 3;
hash[3][2] = 6;
hash[3][3] = 9;
_root.debug = "";
for (key in hash[3]){
_root.debug+=key;
}

この回答への補足

ご回答ありがとうございます。

私はオーサリングツールはParaFla!を使用してるのですが、
ParaFla!(ActionSctipt1.0)だとfor (key in hash[3]){
ではキーは入ってこないのようです。。

因みに
_root.debug = "";
はなくても大丈夫でした。

補足日時:2008/09/12 14:02
    • good
    • 0

>第一キー固定で第二キーを取り出したいです。



実際に第二キーが取り出せていると思いますが・・・
期待道りの結果とはどんな結果なんでしょうか?

私の環境では両方とも
_root.debugの値はundefined321となります。

この回答への補足

ご回答ありがとうございます。

>>第一キー固定で第二キーを取り出したいです。
>
>実際に第二キーが取り出せていると思いますが・・・
>期待道りの結果とはどんな結果なんでしょうか?
順番はソートなどしてないので、変わるかもしれませんが、

321

と第二キーが表示されるのが期待してる結果です。
>
>私の環境では両方とも
>_root.debugの値はundefined321となります。
サンプルに提示した例は行頭が全角スペースにしてます。(注意を記載しないですみません)
もしかしたら、そのせいかもしれません。

補足日時:2008/09/12 12:45
    • good
    • 0

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