때로는 다음과 같이 배열을 의사 배열(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은 순서대로 obj를 팝업합니다. 키와 해당 값입니다. ArrayLike로 변환할 수 있습니다.
그러나 이는 IE6/7에서는 불가능합니다. obj가 여전히 빈 개체임을 나타내는 정보가 출력되지 않습니다.
obj에 길이 속성을 추가하면 상황이 달라집니다
var ary = ['one','two',' three'];
var obj = {length:0} // 길이가 있고 값은 0
Array .prototype.push.apply( obj, ary);
for(var i in obj){
alert(i ': ' obj[i])
}
이번에는 IE6/7(모든 브라우저에 키와 해당 값이 표시됨) ArrayLike로 변환할 수 있습니다.
길이에는 다른 값 대신 0 값만 할당할 수 있습니다. 그렇지 않으면 획득한 객체 키와 값은 일대일로 대응되지 않습니다.
var ary = ['one',' two', '3'];
var obj = {length:2}; // 0이 아닌 길이가 있습니다
Array.prototype.push.apply(obj, ary); (var i in obj ){
alert(i ': ' obj[i])
}