궁금한게 많은 코린이의 Developer 노트

[javascript] 배열의 반복 메서드 종류에는 무엇이 있을까? 본문

Javascript

[javascript] 배열의 반복 메서드 종류에는 무엇이 있을까?

lemonarr🍋 2023. 11. 14. 23:24

 

 

배열의 반복 메서드에는 3가지가 있습니다.

forEach, map, reduce...! 등이 존재합니다.

 

 

반복 메서드: 배열의 모든 요소를 순회하며 특정한 작업을 수행하거나 특정 조건을 만족하는 요소를 가져올 때 사용합니다.

반복 메서드 대부분은 첫번째 인수로 함수의 참조를 받는 고차 함수 입니다.

 

고차함수?: 

다른 함수를 매개변수로 사용하여 어떤 데이터를 처리하거나, 결과로 함수를 반환 하는 함수입니다. 반복적으로 수행되는 어떤 연산을 추상화하기 위 한 것입니다. 전형적인 예시로는 배열과 함수를 인수로 취하는 map 입니다. map은 고차 함수를 사용하여 배열의 각 항목을 변환하고, 변환된 데이터로 새로운 배열을 반환합니다. javascript에서 흔히 볼 수 있는 다른 예로, forEach, filter, reduce가 있습니다.

하나 이상의 함수를 인수로 취하거나 함수를 결과로 반환하는 함수를 말합니다.

고차 함수는 인자로 받은 함수를 필요한 시점에 호출하거나 클로저를 생성하여 반환합니다.

 

클로저?: 주변 상태에 대한 참조와 함께 묶인 함수의 조합이다.

클로저는 내부 함수에서 욉 함수의 범위에 대한 접근을 제공합니다. javascript에서 클로저는 함수 생성 시,

함수가 생성될 때 마다 생성됩니다.

 

 

1. forEach( ) 메서드:

인수로 받은 함수를 배열의 요소별로 '한 번씩' 실행합니다. 첫번째 인수로 들어가는 함수에는 value, index, array가 사용됩니다. 기존 반복문인 for문 대신 많이 쓰입니다.

break문이 없기 때문에 중간에 return 이나 break 코드가 있어도 멈추지 않고 걔속 반복이 진행됩니다.

 

2. Map( ) 메서드 :

인수로 받은 함수를 배열의 요소별로 한 번씩 실행하며, 마지막에는 그 함수가 반환한 값으로 새로운 배열을 생성합니다.

map 메서드의 인수로 넘기는 함수는 반드시 값을 반환해야 합니다. (return 문이 필수입니다.)

배열의 각 요소에 대해 실행한 callback의 결과를 모든 새로운 배열.

현재 반복중인 배열에서 나온 결과를 새로운 배열을 만들어서 리턴합니다.

현재 배열을 가공해서 새로운 배열을 만드는 경우가 자주 생기는데, 새로운 배열을 만드는 메서드 중 자주 map이 사용됩니다.

 

 

3. filter( ) 메서드:

테스트를 통과한 요소로 이루어진 새로운 배열, 어떤 요소도 테스트를 통과하지 못했으면 빈 배열을 반환합니다.

혀재 배열에서 어느 값만 남기고 싶을 때 사용하는 메소드입니다.

 

 

 

4. Reduce( ) 메서드:

누적 계산의 결과 값. 현재 배열을 반복하여 결과 값을 누적합니다.

더하기, 평균, 최빈값, 최대값 등을 구할 때도 아주 유용합니다.

주의할 점은 reduce는 다음 반복할 때 acc의 값으로 저장됩니다.

 

 

 

5. some( ) 메서드: != every( )

 callback이 어떤 배열 요소라도 대해 참인(truthy) 값을 반환하는 경우 true, 그 외엔 false.

특정 배열을 순회하면서 값이 있는지를 찾고 싶을 때 자주 사용됩니다.

some은 다른 배열 메서드와 다르게 break 같은 효과가 있는 메서드 입니다.

 

 

 

6. every( ) 메서드:  != some( )

 

callback이 모든 배열 요소에 대해 참( truthy )인 값을 반환하는 경우 true, 그 외엔 false.

every은 some 의 반대 개념으로 모든 원소가 해당 조건을 만족해야 true, 하나라도 만족하지 않으면 false를 리턴합니다.

some 처럼 조건에 만족하지 않는 경우 즉시 반복을 멈추고 false를 리턴합니다.