TIL - 2022.11.03

흔한 감자·2022년 11월 3일
0

코드스테이츠

목록 보기
5/18

배열

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

선언 & 할당

let array1 = [1, 2, 3, 4, 5];
let array2 = new Array(5);
let array3 = Array.from({length: 5}, (value, index) => index);

배열내 요소 접근

let array = [1, 2, 3];
console.log(array[0]) // output: 1

// 존재하지 않는 인덱스 요소 접근
console.log(array[4]) // output: undefined

let array1 = [1, 2, 3, 4, 5, 6];
array1[0] = "1";
array1[2] = "2";
colose.log(array1); //output: 1, 비어있음, 2

존재하지 않는 요소에 접근시 에러가 아닌 undefined가 발생합니다.
또한 위에서 볼 수 있듯이 자바스크립트의 배열은 다른 언어와 다르게 연속적이지 않는 희소 배열입니다. 그렇지만 최적화되어 있어, object 접근시 보다 빠릅니다.

배열 함수

배열에는 여러 메소드들은 내장하고 있는데, length는 메소드가 아닌 프로퍼티 값입니다.

배열 원본을 직접 변경하는 메소드

  • push: 마지막에 요소 추가
  • pop: 마지막 요소 삭제
  • unshift: 맨 앞에 요소 추가
  • shift: 맨 앞 요소 삭제
  • splice(start, deleteCount, item..): start요소 부터 deleteCount 수 만큼 삭제. item 인수를 전달한 경우 해당 위치에 item 추가하고 삭제한 요소 반환
  • reverse: 원본 배열의 순서를 반전
  • fill(value, start, end): 인수로 전달 받은 값으로 범위내의 요소 값을 변경
  • sort: 배열의 요소를 정렬. 기본 수행은 오름차순으로 수행

원본에 영향이 없는 메소드

  • isArray: 배열여부 boolean값 반환
  • indexOf: 찾는 요소의 위치를 반환. 없는 경우 -1 반환
  • includes: 찾는 요소의 존재 여부 boolean값 반환
  • concat: 두 배열을 병합한 새로운 배열을 반환 (스프레드 문법으로 대체 가능)
  • slice(begin, end): 인수로 전달된 범위내의 배열의 요소들은 반환
  • forEach(callback): callback을 배열 각 요소에 대해 한 번씩 수행. delete를 통해 삭제했거나 초기화하지 않은 요소 대해서는 실행하지 않음.
  • map(callback): 요소를 순회하며 callback을 실행한 반환값으로 새로운 배열을 생성하여 반환함
  • filter(callback): 요소를 순회하며 callback을 실행한 결과가 참인 리스트를 새로운 배열로 생성하여 반환함
  • reduce(callback): 요소를 순회하며 누산 값을 저장하며 하나의 최종 결과 값을 반환함.
profile
프론트엔드 개발자

0개의 댓글