Array methods

Doyoon Lee·2020년 11월 16일
0
post-thumbnail

  Array Non-Mutating Methods

아래 메소드들은 원본 배열을 해치지 않는다.

slice()

  • 얕은 복사본을 새로운 배열 객체로 반환합니다. 원본 배열은 바뀌지 않습니다.
  • 인자를 두개 받는다. 시작할 인덱스 와 끝날 인덱스

concat()

  • 인자로 주어진 배열이나 값들을 기존 배열에 합쳐서 새 배열을 리턴

filter()

[1, 2, 3].filter((x) => x % 2 === 0); // [2]

  • 콜백으로 받은 함수를 배열의 요소 각각에 실행하고 함수의 값이 true로 적용되는 요소만 담은 새로운 배열을 리턴

reduce()

numbers = [1, 2, 3];

numbersCopy = numbers.reduce((newArray, element) => {
  newArray.push(element);

  return newArray;
}, []);

  Array Mutating Methods

아래 메소드들은 원본 배열을 변경한다.

sort()

  • 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환한다.
  • 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.

내부에 함수를 제공해주지 않았을 때 기본적으로 정렬되는 순서

  • 알파벳만 있을 때 : 기본적으로 알파벳 순. 대문자 먼저 소문자 나중
  • 숫자만 있을 때 : 숫자순으로 정렬, 10이 2 보다 앞에오는 것 주의
  • 알파벳 + 숫자 : 알파벳 먼저, 숫자가 나중에. 알파벳과 숫자의 각각의 규칙은 위와 동일함.

compareFunction(Optional)

정렬 순서를 내가 직접 정의하기 위한 함수.
생략하면 문자열의 유니코드 값에 따라 정렬.

compareFunction(a, b) < 0
a를 b보다 낮은 인덱스로 정렬. (a가 먼저 나옴)

compareFunction(a, b) = 0
a와 b를 서로에 대해 변경하지 않고 모든 다른 요소에 대해 정렬

compareFunction(a, b) > 0
b를 a보다 낮은 인덱스로 정렬. (b가 먼저 나옴)

splice()

  • 기존 요소를 제거하거나 새 요소를 추가하여 배열의 내용을 변경
  • 인자를 3개 받는다.
  • 배열의 변경을 시작하는 인덱스
  • 배열에서 제거를 할 요소의 수
  • 배열에 추가될 요소

push()

  • 인자로 받은 값을 배열의 맨 뒤에 넣고 바뀐 배열의 길이를 리턴

unshift()

  • 인자로 받은 값을 배열의 맨 앞에 넣고 바뀐 배열의 길이를 리턴

pop()

  • 배열 맨 뒤의 요소를 없애고 그 요소를 리턴

shift()

  • 배열 맨 앞의 요소를 없애고 그 요소를 리턴

기타 유용한 Methods

.slice().sort() 체이닝

slice 안에 값을 안 넣으면 그대로 얕은 복사본을 리턴하므로, 얕은 복사용으로 그냥 사용한 것이다.

indexOf()

  • 배열에서 지정된 요소를 찾을 수있는 첫 번째 인덱스를 반환하고 존재하지 않으면 -1을 반환(return 값을 검사해서 Boolean 형태로 활용 가능)

0개의 댓글