■
_array = new Array(); for(var i; 10 > i; i++ ){ _array[_array.length] = i; }
とかやって配列を作った後、
for(i=0; _array.length>i; i++) alert(_array[i]); for(var i in _array) alert(_array[i]);
の出力が違うのは何かに呪われているからだろうか(for/inはforeachというか、イテレータ的な物)。
具体的には前者は想定通りで、後者は前者の出力に一個オマケで「extend*1」が帰ってくる。
色々な所をみても、for/inでは要素だけが帰ってくると書いてあるんだけどな。
思うに、ArrayをObjectと勘違いしていると思うのだが、色々な所を読む限り、同じように扱えると書いてあるのだが…、なんか明示的な指示子がいるのだろうか。
と、ここで「まあ普通にfor文を使えという事だな」とさっさとあきらめる俺はやっぱりプログラマに向いていないと思った。
*1:メソッド