# array-like 유사배열
아래 예시의 likeArray처럼 배열처럼 생긴 객체를 유사배열이라고 한다.
유사배열은 length프로퍼티와 숫자프로퍼티로 구성됨.
// 유사배열 - 배열이 아닌 객체인데 length 프로퍼티가 있고 배열처럼 생겼다
const likeArray = {
length: 3,
0: 'boseok',
1: 'boseok1',
2: 'boseok2',
};
// 유사배열이 배열인가?
console.log('likeArray === array?', Array.isArray(likeArray)); //false
// 유사배열을 배열로 바꿔주는 Array의 from이라는 static 메소드
const arr = Array.from(likeArray);
// from으로 변경한 배열이 진짜 배열인가?
console.log('arr === array?', Array.isArray(arr)); //true
중간에 인덱스가 빠져있는 것은 undefined로 처리됨을 주의.
length프로퍼티가 없는 객체는 유사배열로 바꿔도 빈 배열로 변형됨.
그래서 아래와 같은 약간의 트릭을 쓰면 유사배열을 안전하게 배열로 변형할수있다.
const newArray = 유사배열;
newArray.length = Object.keys(유사배열).length;
Array.from(newArray); //정상적인 배열이 리턴됨