웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > lodash

lodash thru 메소드 정보 및 예제

Last Modified : 2023-02-28 / Created : 2023-02-21
2,277
View Count
lodash 메소드 중 하나인 thru()에 대하여 알아봅니다.




# Lodash thru() 메소드 알아보기


lodash thru()는 영어 단어 through의 사전적 의미인 "무엇을 통하다~",  "이어지다"와 같이 연속되는 체인의 중간에서 특정한 뭔가를 동작하거나 검증하는데 사용하는 메소드입니다.

사용 문법은 아래와 같습니다.

_.thru(Function)

생각해보면 thru()를 사용하지 않아도 특정한 기능을 구현할 수 있습니다. 하지만 정해진 기능의 사이에 추가해서 어떤 동작을 수행하게 하거나 검증, 비교 등의 목적으로 thru()를 사용하면 효과적이라 하겠습니다.

thru()를 실행하면 내부 함수를 통해 상위 체인까지의 결과물을 인자로 전달 받을 수 있습니다. 이 값을 가지고 원하는 기능을 만들어 수행하도록 하고 다음 체인에 반환하게 됩니다. 


! lodash thru() 예제보기


간단한 예제를 알아봅니다. 만약 아래와 같이 연속된 숫자의 제곱값을 얻을 때 100 보다 큰 값을 제거하기 위한 목적으로 thru()를 작성할 수 있습니다.
_.chain([3, 6, 9, 12, 15])
.map(n => Math.pow(n, 2))
.thru(myArray => myArray .filter(num => num < 100))
.value();

// Result
 [9, 36, 81]

위 예제와 같이 100보다 작은 값만 얻기 위해 중간에 _.thru()를 사용하여 값을 필터링하는데 사용하는 것이 가능합니다. 단독으로 사용하는 것보다 thru()를 사용하는 것이 전체 프로세스와 다른 기능 단위로 동작하는 것을 나타낼 수 있습니다.


! 마치면서


lodash()의 thru() 메소드는 tap() 메소드와 매우 유사하게 동작하며 둘 다 디버깅하거나 검증하는데 사용하는 것이 가능합니다. 다만 tap()의 경우 이 후 값을 변환하지 않지만 thru()는 값을 수정하는 것이 다르다는 차이점이 있으므로 상황에 맞게 선택해 적용할 수 있겠습니다.

또 다른 이유로 중간에 반환된 값을 가지고 이 후 동작을 수행할 수 있기 때문에 만약 배열의 필터링에 thru()를 사용한다면 반복에 사용되는 횟수가 처음보다 줄어들 수 있으므로 결과적으로 성능 향상에 도움이 될 수 있겠습니다. 이런 이유로 thru는 함수형 프로그래밍과 잘 어울리는 메소드라 할 수 있죠.

thru()의 특징 또는 장점을 요약하면 다음과 같습니다.

  • 작업 중간에 결과를 검사하거나 수정하는 경우 편의성 및 성능의 이점
  • 디버깅 또는 검증 등의 과정에 편리
  • 중간에 얻은 결과를 다음의 과정에 전달하는데 유용


이와 같은 장점이 있겠다고 하겠습니다. 여기까지 lodash의 thru()에 대하여 알아보았습니다.

Previous

꼭 알아야 할 lodash 메소드 Best 10

Previous

[lodash] take 메서드 알아보기, 배열 길이 정하기