今まで、全然知らなかったけど、どうやら連想配列は、Array型では無いらしい。
http://js.tank.jp/javascript/post.html
http://d.hatena.ne.jp/amachang/20070202/1170386546
例えば、
var arr = ["Takahashi","28"];
var obj = {name:'Yamada', old:24};
alert(arr.length);
alert(obj.length);
上記の様なjavascriptを書いたとき、青字のalert(arr.length);は、普通に、配列の中の個数をalertする。(今回は、2が出力される。)
一方、赤字のalert(obj.length);は、undefinedが出力される。
どうやら、連想配列は、Object型らしい。
よく、配列の中にあるものを、for文の繰り返しで、中にあるものを全部処理するっていう感じの文を書くけれど、
例
for (var i; i<hairetu.lenth; i++ ){
~ここに処理~
}
連想配列の場合は、for in文を使う事で、中にあるもの全部に対して、処理が出来る。例えば、
var obj = new Object();
obj.name = 'Yamada';
obj.old = 24;
for(var soe in obj){
document.write(soe+":"+obj[soe]+"<br />");
}
こんな感じで、実行する。
for in文に関して、詳しくは、下記のサイトに乗ってます。
http://www.ajaxtower.jp/js/for/index8.html
どうやら、若干連想配列の指定の仕方に違いはあるかもだけど、ActionScriptでも、同じようなことがいえそうです。
その辺は、後でまた調べてみよう。
Comments