JS week5 ch.27

최준민·2023년 11월 12일

모던 자바스크립트

목록 보기
22/34

배열 (array)
→ 여러 개의 값을 순차적으로 나열한 자료구조

요소 (element)
→ 배열이 갖고 있는 값

배열의 길이 length프로퍼티

배열 리터럴 (쉼표로 구분 후 []로 묶음),
Array 생성자 함수 (전달된 인수의 개수에 따라 다르게 동작),
→ 정적 메소드
Array.of (전달된 인수가 1개이고 숫자이더라도 인수를 요소로 갖음), Array.from (유사 배열 객체, 이터러블 객체를 인수로 받아 배열로 변환)

배열은 객체이지만 일반 객체와는 다름

  1. 구조 : 인덱스와 요소
  2. 값의 참조 : 인덱스
  3. 값의 순서 O
  4. length 프로퍼티 O

자바스크립트에서 배열
→ 요소를 삽입, 삭제하는 경우 일반적인 배열보다 빠른 성능
→ 요소가 연속적으로 이어지지 않은 희소 배열
→ length와 배열 요소의 개수가 일치 X

배열 메서드
1. 원본 배열을 직접 변경하는 메서드 (mutator method)
→ 외부 상태 변경하는 side effect가 있으므로 권장 X
2. 새로운 배열을 생성하여 반환하는 메서드 (accessor method)

Array.isArray
→ Array 생성자 함수의 정적 메서드
전달된 인수가 배열이면 true, 배열이 아니면 false

Array.prototype.indexof
→ 특정 요소가 존재하는지 확인할 때
원본 배열에서 인수로 전달된 요소를 검색하여 인덱스를 반환
Array.prototype.includes를 사용하면 가독성이 더 좋다

stack 구현하는데 유용

Array.prototype.push
→ 원본 배열 직접 변경
인수로 전달받은 모든 값을 원본 배열의 마지막 요소로 추가하고 변경된 length 프로퍼티 값을 반환

Array.prototype.pop
→ 원본 배열 직접 변경
원본 배열에서 마지막 요소를 제거하고 제거한 요소를 반환한다
원본 배열이 빈 배열이면 undefined

큐를 구현하는데 유용

Array.prototype.unshift
→ 원본 배열 직접 변경
인수로 전달받은 모든 값을 원본 배열의 선두에 요소로 추가하고 변경된 length 프로퍼티 값을 반환
스프레드 문법을 사용하는 것이 더 좋다

Array.prototype.shift
→ 원본 배열 직접 변경
원본 배열에서 첫 번째 요소를 제거하고 제거한 요소를 반환
원본 배열이 빈 배열이면 undefined

Array.prototype.concat
→ 인수 값들을 원본 배열의 마지막 요소로 추가한 새로운 배열을 반환
배열을 전달할 경우 새로운 배열의 요소로 추가
push와 unshift는 concat으로 대체 가능
스프레드 문법을 사용하는 것이 더 좋다

Array.prototype.splice
→ 원본 배열 직접 변경
원본 배열의 중간에 요소를 추가하거나 제거한다.
start, deleteCount, items 3개의 매개변수가 있다

Array.prototype.slice
→ 원본 배열 변경 X
인수로 전달된 범위의 요소들을 복사하여 배열로 반환 (얕은 복사)
start,end 두개의 매개변수

Array.prototype.join
원본 배열의 모든 요소를 문자열로 변환한 후
구분자로 연결한 문자열을 반환
→ 구분자 생략 가능, 기본값 ','

Array.prototype.reverse
원본 배열의 순서를 반대로 뒤집는다
→ 원본 배열 변경

배열 고차 함수
→ 함수를 인수로 전달받거나 함수를 반환하는 함수

Array.prototype.sort
→ 원본 배열 직접 변경
배열의 요소 정렬하여 반환 (오름차순)

Array.prototype.forEach
for문을 대체할 수 있는 고차 함수, 자신의 내부에서 반복문을 실행 (콜백 함수로 전달받아 반복 호출)
원본 배열 변경 X

Array.prototype.map
배열의 모든 요소를 돌면서 인수로 전달받은 콜백 함수를 반복 호출한다. (콜백 함수의 반환값들로 구성된 새로운 배열을 반환)
원본 배열 변경 X

Array.prototype.filter
배열의 모든 요소를 돌면서 인수로 전달받은 콜백함수를 반복 호출
(콜백 함수의 반환값이 true인 요소로만 구성된 새로운 배열 반환)

Array.prototype.reduce
배열의 모든 요소를 돌면서 인수로 전달받은 콜백 함수를 반복 호출
(반환값을 다음에 돌때 콜백 함수의 첫 인수로 전달하여 콜백함수 호출하여 하나의 결과 값 반환)
원본 배열 변경X

0개의 댓글