Hatena::Groupos0x

FFFF RSSフィード

0xFFのメモです。

2010 July 31st Saturday

密な配列を作る小ネタ

| 00:20 | 密な配列を作る小ネタ - FFFF を含むブックマーク はてなブックマーク - 密な配列を作る小ネタ - FFFF

また脱線メモ。

new Array(10)した配列をforEachしてもスルーされちゃう問題について、IE以外はArray.apply(null, Array(10))とすれば良い via TOYAMA Naoさんのツイート: "そういえば以前、要素数nの密な配列を作るのに Array.apply(null, Array(n)) が使えないかと思ったけど、JScriptでダメだったんだよね。" この方法はIE9pp3でも動いた。

で、ふと別の方法を思いついて試したところIE6でも動いた。こんな感じ。

var a=new Array(10);
a.splice.apply(a, Array(a.length+2));
var r = [];
for (var i in a){
  r.push(i);
}
alert(r);// 0,1,2,3,4,5,6,7,8,9

a.splice.apply(a, Array(a.length+2)); を1行追加するだけ。全然面倒!わかり難い!

まあ、Array(n).join().split(',')よりはマシのような気もしないこともないけど、こういうのが欲しいのは大抵書き捨てのコードなので、やっぱりjoin splitで十分だよね。