Languages/JavaScript

[HUFS/GnuVil] #15 배열

성중 2022. 11. 4. 16:12

배열

배열(Array)이란 여러 개의 값을 순차적으로 나열한 자료구조로, 배열이 가지고 있는 값을 요소(Element)라고 부른다. 각 요소는 자신의 위치를 나타내는 0 이상의 정수인 인덱스(index)를 가지며 같은 타입의 요소가 연속적으로 위치하는 것이 일반적이다

 

const arr = [1, 2, 3, 4, 5];
const arr2 = new Array(3).fill(1); // -> [1, 1, 1]
const arr3 Array.of(1, 2, 3); // -> [1, 2, 3]
const arr4 = Array.from({ length: 3 }, (_, i) => i); // -> [0, 1, 2]

typeof arr // -> object

배열은 객체 타입이며 리터럴, Array 생성자 함수, Array.of, Array.from 메서드로 생성할 수 있다

 

일반 객체와 구분되는 특징 (순회가 더 빠름)

const arr = [1];

// push 메서드는 원본 배열(arr)을 직접 변경한다.
arr.push(2);
console.log(arr); // [1, 2]

// concat 메서드는 원본 배열(arr)을 직접 변경하지 않고 새로운 배열을 생성하여 반환한다.
const result = arr.concat(3);
console.log(arr);    // [1, 2]
console.log(result); // [1, 2, 3]

// bad
const menus = ['에스프레소', '카페라떼', '프라푸치노', '블랙티'];
menus.forEach((value, index) => {
    menus[index] += '디카페인';
});
console.log(menus);

// good
const menus = ['에스프레소', '카페라떼', '프라푸치노', '블랙티'];
const decMenus = menus.map((value, index) => menus[index] += '디카페인');
console.log(decMenus);

배열이나 객체는 예상치 못한 데이터 변경을 예방하기 위해 불변 객체처럼 다루는 것이 좋다

 

  • 배열 메서드: isArray / indexOf / push / pop / unshift / shift / concat / splice / slice / join / reverse / fill / includes / flat
  • 배열 고차 함수: sort / forEach / map / filter / reduce / some / every / find / findIndex / flatMap

 

배열 메서드배열 고차 함수들을 모두 기억하고 상황에 맞게 사용할 수 있어야 한다!

 

 내용은 위키북스의 '모던 자바스크립트 Deep Dive' 바탕으로 작성되었습니다.