알고리즘 배열 메서드

심채운·2024년 1월 23일
0

JavaScript

목록 보기
14/14
post-thumbnail

최근 1일 1 커밋하면서 알고리즘을 시작하고 있다.
처음엔 비전공자인 내가 알고리즘을 공부하고 코테를 준비하는 것 보단 결과물을 만들어내는 프로젝트 위주로 공부하는 것이 더 효율적이라고 생각했다.
하지만 어느 순간부터 코드의 로직이 한정적이고 비효율적이라고 판단이 되었다. 어차피 코테는 나중에도 필요하고 개발자에게 있어 필수이니 1일 1커밋을 하면서 알고리즘을 시작했다.

배열의 특정 index 뭐요?...

알고리즘을 하면서 조건문, 반복문, 메서드는 문제 없지만 나는 배열이 좀 어려웠다. 맨날 프로젝트에서는 map, filter만 사용하다 보니 특정 index값을 찾거나 삭제하거나 수정하거나 이런 문제가 나오면 좀 막막해졌다. 그래서 블로그에 따로 정리하기로 했다.

배열 요소 값 추가

추가

  • Array.push()
    • 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환한다.
    • 응용 : Array.push.apply([], []) // 두개의 배열을 합친다.
  • Array.unshift()
    • 새로운 요소를 배열의 맨 앞쪽에 추가하고, 새로운 길이를 반환한다.

삭제

  • Array.pop()
    • 배열에서 마지막 요소를 제거하고 그 요소를 반환한다.배열의 길이를 변하게 한다.
  • Array.shift()
    • 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환한다. 배열의 길이를 변하게 한다.

수정

  • Array.slice(start, end)
    • 어떤 배열의 start부터 end까지(end미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환한다. 즉, 원본 배열은 바뀌지 않는다.
    • start
      • undefined인 경우 : index 0부터 slice
      • 음수를 지정한 경우 : 배열의 끝에서부터의 index를 셈. ex) slice(-2) 마지막 2개의 요소
      • 배열의 길이와 같거나 큰 수를 지정한 경우 : 빈 배열 반환
    • end
      • 지정하지 않을 경우 : 배열의 끝까지
      • 음수를 지정한 경우 : slice(2,-2) 앞에서 2번째 index부터 마지막 2개까지 추출
      • 배열의 길이와 같거나 큰 수를 지정한 경우 : 배열의 끝까지 추출

수정/삭제

  • Array.splice(start, delete, item)
    • 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경한다. 원본 변경
    • start
      • 음수를 지정한 경우 : 배열의 끝에서부터 요소를 센다
      • 배열의 길이보다 큰 수를 지정한 경우 : 실제 시작 인덱스는 배열의 길이로 설정
      • 절대값이 배열의 길이보다 큰 경우 : 0으로 세팅
    • delete
      • 생략 / 값이 array.length - start보다 큰 경우 : start부터의 모든 요소를 제거
      • 0이하의 수를 지정한 경우 : 어떤 요소도 제거되지 않는다.
    • item
      • 지정하지 않은 경우 : splice()는 요소 제거만 수행.
    • ex) array.splice(3,0,'hi') : 하낫도 삭제하지 않고, 3번째 index에 hi 문자열 추가
    • ex) array.splice(1,1,5) : 1번째 index에서 한 개 요소 제거하고 5 추가
    • ex) array.splice(3,2) : 3번째 index에서 두 개 요소 제거
profile
불가능, 그것은 사실이 아니라 하나의 의견일 뿐이다. - 무하마드 알리

0개의 댓글