[JS] 배열과 메소드

학미새🐥·2023년 5월 5일
0

모던자스 정리

배열의 모든 메서드를 부셔봅시다

요소 추가, 제거

기본적으로

  • arr.push(요소)
  • arr.pop()
  • arr.shift()
  • arr.unshift(요소)
    이 외에도 다양하다. 렛츠고

splice

  • 형태 : arr.splice(index[, deleteCount, elem1, ...., elemN])
  • index : 삭제시킬 첫번째 요소를 가리키는 인덱스
  • deleteCount : 제거하고자 하는 요소의 개수
  • elem1, ... elemN : 삭제 후 배열에 추가할 요소
  • 반환값 : 삭제된 요소로 구성된 배열
  • 요소 추가하는 법 : arr.splice(index, 0, 추가할 요소)를 하면, 0개를 삭제하고 index 자리에 추가할 요소를 넣어주게 된다.

slice

  • 형태 : arr.slice([start], [end])
  • start 인덱스부터 end 인덱스까지 요소를 복사해서 새로운 배열을 반환
  • 인수를 하나도 넣지 않고 arr.slice()를 통해 새로운 배열로 기존 배열을 복사할 수 있다.

concat

  • 형태 : arr.concat(요소1, 요소2 ...)
  • 새로운 배열을 만들거나 기존 배열에 요소를 추가하고자 할 때 사용할 수 있다.
  • 요소1, 요소2... 등이 복사되어서 arr 배열에 합쳐져서 새로운 배열을 반환한다.
  • 요소로 배열이 올 수도 있다. 이럴 경우 기존 배열에 요소 배열이 합쳐서 하나의 새로운 배열이 반환된다.
  • 요소로 객체가 올 수도 있고, 이럴 경우에도 객체가 통째로 복사되어 하나의 배열의 요소로 들어가게 된다.
let arr = [1, 2];
console.log( arr.concat([3, 4], [5, 6]) ); 
// output -> 1, 2, 3, 4, 5, 6

반복작업

forEach

  • 형태 : arr.forEach(함수)
  • 주어진 함수를 배열 요소 각각에 대해 실행시켜줌
  • arr.forEach((요소, index, 배열) => { ... });
  • forEach의 인수로 들어가는 함수에서는 아무것도 반환되지 않는다.

배열탐색

indexOf

  • 형태 : arr.indexOf(item, from)
  • arr 배열 내에서 from 인덱스부터 시작해서 item 요소를 찾는다
  • 반환값 : 해당 요소의 인텍스 (발견 못할 경우 -1 반환)

lastIndexOf

  • 형태 : arr.lastIndexOf(item, from)
  • indexOf와 동일하지만 요소를 뒤에서부터 찾는다.

includes

  • 형태 : arr.includes(item, from)
  • arr 배열 내에서 from 인덱스부터 시작해서 item 요소를 찾는다 (위와 동일)
  • 반환값 : 찾으면 true, 못찾으면 false
  • 특징 : indexOf, lastIndexOf와 달리 NaN도 제대로 처리한다

find

  • 형태 : arr.find(function(item, index, array) {...};)
    • item : 함수를 호출할 요소
    • index : 요소의 인덱스
    • array : 배열 자기 자신
  • 반환값 : 참일 경우 해당 요소를 반환, 거짓이면 undefined
  • 단 하나의 요소만 찾음

findIndex

  • find와 똑같은 역할
  • 반환값 : 참일 경우 해당 요소의 '인덱스'를 반환, 거짓이면 -1

filter

  • 형태 : arr.filter(function(item, index, array) {...})
  • find와 유사하지만 조건을 충족하는 요소가 여러개일때 사용
  • 반환값 : 조건을 충족하는 요소들의 배열

배열변형

map

  • 형태 : arr.map(함수)
  • 반환값 : 함수 호출 결과가 되는 배열

sort

  • 형태 : arr.sort();
  • 배열 정렬해줌. arr.sort();
  • 반환값 : 정렬된 배열이 반환되긴 하지만, 반환값을 입력하지 않아도 arr 자체가 정렬되어서 반환값은 잘 사용 안함
  • Default : 모든 요소가 문자열로 취급되어 정렬됨
  • ()안에 새로운 함수를 정의해서 요소 정렬의 기준을 커스텀할 수 있음

reverse

  • 형태 : arr.reverse();
  • 배열을 역순으로 정렬

split

  • 형태 : str.split(구분자)
  • 구분자를 기준으로 문자열을 쪼개줌
  • 두번째 인수로 숫자를 받으면, 배열의 길이를 넘어가는 요소를 무시함

join

  • 형태 : arr.join(glue)
  • glue를 사이에 끼워넣고 모든 배열의 요소를 하나의 문자열로 합침

reduce

  • 배열을 기반으로 값 하나를 도출할 때 사용
  • 형태 :
let value = arr.reduce(function(accumulator, item, index, array) {
  // ...
}, [initial]);
  • accumulator :

배열 여부 알아내기

Array.isArray

  • 형태 :Array.isArray(value));
  • 배열이 특별한 객체 타입이기 때문에, typoef를 사용하면 객체와 구분될 수 없다.
  • isArray는 배열인지를 판단해주는 전용 메소드이다.
  • value가 배열이면 true, value가 아니면 false 반환

thisArg

  • 대부분의 배열 메서드가 받을 수 있는 매개변수
profile
뭐든 다해보려는 공대생입니다

0개의 댓글