JavaScript の Array リテラル2010/03/31

JavaScriptで、

array = [
 [hoge, foo],
 [fuga, bar],
 [piyo, boo],
]

とやると、array.length は 3 なのに、prototype.js のeachで回すと、

  • firefoxでは eachに与えたfunctionは3回実行される。
  • IE8では eachに与えたfunctionは4回実行される。(最後の1回はundefined が引数に与えられる)

という謎の挙動に悩まされた。

array = [
 [hoge, foo],
 [fuga, bar],
 [piyo, boo]
]

とすると、firefox/IE8ともに3回になった。 これって、そういうものなの?