배열과 유사배열

김영진·2022년 7월 23일
0

TIL

목록 보기
15/29
post-thumbnail

배열이란?

배열은 여러 개의 값을 순차적으로 나열한 자료구조이다.

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()메서드를 사용하면 된다. 그럼 배열로 변환되어 배열 메서드를 사용할 수 있다.

profile
노션 및 티스토리로 이동 예정입니다.

0개의 댓글