배열은 여러 개의 값을 순차적으로 나열한 자료구조이다.
const arr = ["apple", "banana", "orange"];
배열이 가지고 있는 값을 요소라고 한다. 자바스크립트의 모든 값은 배열의 요소가 될 수 있다. 배열의 요소는 자신의 위치를 나타내는 0
이상의 정수인 인덱스를 순서대로 갖는다.
유사 배열 객체는 마치 배열처럼 인덱스로 프로퍼티 값에 접근할 수 있고 length 프로퍼티를 갖는 객체를 말한다.
const arrayLike = {
'0': 'apple',
'1': 'banana',
'2': 'orange',
length: 3
};
// 유사 배열 객체는 마치 배열처럼 for문으로 순회할 수 있다.
for (let i=0; i<arrayLike.length; i++) {
console.log(arrayLike[i]); //apple banana orange
}
하지만 유사배열은 배열의 내장 메서드를 쓸 수 없다.(forEach, map, filter, ...)
Array.isArray(arr); //true
Array.isArray(arrayLike); //false
배열인지를 판단해주는 메서드인 Array.isArray를 사용하면 배열인지 유사배열인지 알 수 있다.
const arrayLike = {
'0': 'apple',
'1': 'banana',
'2': 'orange',
length: 3
};
Array.from(arrayLike); // ['apple', 'banana', 'orange']
유사 배열 객체 또는 이터러블 객체를 인수로 전달받아 배열로 변환하여 반환해주는 Array.from()메서드를 사용하면 된다. 그럼 배열로 변환되어 배열 메서드를 사용할 수 있다.