1 minute read

배열 메서드


배열 메서드 종류

” forEach()  /  map()   / fill()   / filter()   / reduce()  / some()  / every()  / find() “


위 배열 메서드들은 함수를 인수로 받는다

* 콜백함수: 다른 함수의 매개변수로 전달되는 함수



forEach( )

어떤 함수를 넣든 상관없이 배열의 각 요소가 차례로 함수로 자동으로 전달되어 함수를 한 번씩 실행한다.

배열의 요소에 대해 반복문 역할을 한다고 볼 수 있다.

For of 루프가 등장하고 forEach()를 많이 쓰진 않지만 

그럼에도 forEach()나 map()을 쓰는 이유는 배열 메서드를 쓰면 성능은 떨어질 수 있지만 연달아 쓰는게 가능하기 때문에 편리하다.


[ syntax ]

배열이름.forEach(function(element, index){
  실행문;
})

//함수를 인수로 받는 forEach메서드


[ forEach() 구문 연습]

image-20240408000340162

image-20240408000411309

=> forEach메서드를 사용하는 일반적인 방식으로 forEach 메서드와 같은 줄에서 이 목적만을 위한 이름없는 함수를 정의

  numbers 배열의 요소를 차례로 출력


[ For of 루프와 forEach 메서드 비교 ]

image-20240408000551571

=> 이후 for of 루프 사용으로 함수를 넣을 필요가 없어지고 더 간결해짐


[ forEach() 구문 연습 - 짝수 출력]

image-20240408000901084

image-20240408000914318

=> numbers 배열의 요소들 중 2로 나눴을때의 나머지가 0인 것을 조건으로 참인 요소만 출력

함수의 매개변수 자리 (el)에 numbers 배열의 각 요소가 차례로 인수로 전달되어 함수가 실행됨


[ forEach() 활용 - 영화제목과 평점 출력]

image-20240408001938153

image-20240408002019582

=> 매개변수 movie 자리에 배열의 각 요소(여기서는 객체 리터럴)가 인수로 들어와 차례로 함수에 전달


[forEach메서드 밖에서 함수 정의하는 방법]

image-20240407235435493

image-20240407235400877

=> 이미 정의한 함수를 전달하는 이 방식은 잘 쓰지 않는다




map()

foreach()와 같이 배열의 요소에 대해 반복을 하는데 map()은 요소를 바꿀 수 있음

이때 기존의 배열이 바뀌는 것이 아니라 요소를 바꾼 새로운 배열을 생성함(return사용)


[ syntax ]

배열이름.map(function(element, index){
  실행문;
})


[ map() 구문 연습 ]

image-20240408225954385

image-20240408230008575

=> 기존 배열의 요소에 각각 2를 곱한 값들로 새로운 배열이 만들어 지고, doubles라는 변수에 저장


[ map() 연습 - 영화제목만 추출한 배열만들기 ]

image-20240408230757916

image-20240408230845563

=> movies라는 배열의 각 요소를 함수의 매개변수 movie 자리로 받은 후, title을 반환받아서 새로운 배열을 만든다. 새로운 배열을 titles라는 변수에 저장한다.




fill()

배열을 괄호안의 내용으로 채워준다

image-20240509132617206

=> 길이가 7인 빈 배열 만들기


image-20240509133102417

=> fill()메서드를 사용해 배열의 요소를 채운다

=> 괄호 속에 아무것도 없으면 undefined가 채워짐


image-20240509134904803

=> 0으로 채워있던 배열에서 map()을 사용해 기존 요소들의 ‘인덱스’가 요소가 되는 ‘새 배열’을 만들었다




Updated: