Sometimes it is necessary to convert an array into a pseudo array (ArrayLike), as follows
var ary = ['one','two','three'];
var obj = {}; // No length attribute
Array.prototype.push.apply(obj, ary);
for(var i in obj){
alert(i ': ' obj[i]);
}
IE8/9/Firefox/Safari/Chrome pops up obj in sequence The key and its value. That can be converted into ArrayLike.
But this is not possible under IE6/7. No information is output to indicate that obj is still an empty object.
If you add a length attribute to obj, the situation is different
var ary = ['one','two','three'];
var obj = {length:0}; // There is length and the value is 0
Array.prototype.push.apply( obj, ary);
for(var i in obj){
alert(i ': ' obj[i]);
}
This time IE6/7( Key and its value pop up in all browsers), and they can be converted into ArrayLike
Note that length can only be assigned a value of 0 instead of other values, otherwise the obtained object key and value will not correspond one to one.
var ary = ['one','two', 'three'];
var obj = {length:2}; // There is length, non-zero value
Array.prototype.push.apply(obj, ary);
for(var i in obj ){
alert(i ': ' obj[i]);
}