次のように、配列を擬似配列 (ArrayLike) に変換する必要がある場合があります
var ary = ['one','two','three'];
var obj = {}; // 長さ属性なし
Array.prototype.push。 apply(obj, ary);
for(var i in obj){
alert(i ': ' obj[i])
IE8/9/ Firefox/Safari/Chrome では、オブジェクトのキーとその値が順にポップアップ表示されます。これは ArrayLike に変換できます。
しかし、これは IE6/7 では不可能です。obj がまだ空のオブジェクトであることを示す情報は出力されません。
obj に length 属性を追加すると状況は異なります
var ary = ['one','two','three'];
var obj = {length:0} // 長さがあり、値は 0
配列.prototype.push.apply( obj, ary);
for(var i in obj){
alert(i ': ' obj[i]);
今回はIE6/7(すべてのブラウザでキーとその値がポップアップします)、ArrayLikeに変換できます
長さには他の値ではなく0の値のみを割り当てることができることに注意してください。それ以外の場合は、取得したオブジェクトのキーと値は 1 対 1 に対応しません。
var ary = ['one',' two', 'three'];
var obj = {length:2} // 長さ、ゼロ以外の値があります
Array.prototype.push.apply(obj, ary); (var i in obj ){
alert(i ': ' obj[i]);