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

HOME > lodash

lodash 일치하는 값이 있는지 확인하기, some()

Last Modified : 2022-11-15 / Created : 2018-07-30
9,183
View Count
Lodash의 some()에 대하여 알아봅니다.

lodash의 some() 메소드는 Collection 데이터에서 일치하는 값이 존재하는지 그 여부를 알아낼 수 있는 방법으로 결과를 불리언 true, false로 반환합니다. 다시 말해 컬렉션의 내부의 값들을 순회하여 만약 일치하는 값이 하나라도 존재하는 경우 불리언 값을 true를 반환하게 되죠. 참고로 이처럼 컬렉션 값 중 일치하는 값을 확인하는 방법은 lodash에서 몇 가지 존재하는데요 그 중에서도 every() 가 비슷하게 동작하는 메소드입니다. every()는 아래 링크를 참고하세요!

Lodash every() 메소드 바로가기 >
https://webisfree.com/2022-11-14/lodash-모든-값들이-조건-일치여부-결과-반환-every()-메소드

그럼 아래에서 some()에 대하여 간략하게 알아봅니다.




# lodash some() 알아보기


lodash some()은 컬렉션 값에서 특정 조건과 일치하는 값이 하나라도 있다면 이를 불리언(Boolean)으로 반환하게 됩니다. some()의 사용 문법은 다음과 같습니다.

_.some(Collection, Condition);


Collection : 순회 할 대상이 되는 컬렉션
Condition : 불리언으로 반환 할 일치할 조건

Collection과 일치하는지를 확인한 후 일치하는 경우에는 true를 반환하고 아니라면 false를 반환하게 됩니다. 그럼 아래는 간단한 예제를 알아보겠습니다.


! lodash some() 예제보기


먼저 컬렉션을 가지는 변수 sites는 다음과 같습니다.
var sites = [
  { no: 1, name: 'web' },
  { no: 2, name: 'is' },
  { no: 3, name: 'free' }
]

이제 아래에는 some()을 사용하여 컬렉션 중 no가 2인 값이 있는지의 여부를 알아보려고 합니다. 이를 위해서 아래와 같이 코드를 작성하여 실행할 수 있습니다.
_.some(sites, {no: 2})

// 실행결과 확인
true

위의 결과처럼 sites 컬렉션에는 { no: 2 }가 일치하므로 불리언값 true를 반환하게 됩니다. 예상했던 결과죠!

만약 no값이 4인 경우라면 어떻게 될까요?
_.some(sites, {no: 4})

// Result
false

해당하는 값이 없으므로 false 값이 반환되는 것을 알 수 있습니다. 참고로 배열 형태로 사용하는 것도 가능합니다. 즉 no가 2인 값을 찾기 위해서 아래처럼 사용할 수 있으며 결과는 동일하게 나타날 것입니다.
_.some(sites, ['no', 2])

// 실행결과 확인
true


@ 여러개의 값을 한 번에 확인하는 방법, some()
하나가 아닌 여러개의 값을 비교, 확인하려면 아래처럼 여러 개를 조건을 한번에 확인할 수 있습니다. 예를들어 다음의 코드는 두 가지 조건의 일치 여부를 확인하려고 합니다.

- no는 2이다
- name은 'is'이다

이 경우 아래처럼 코드를 작성합니다.
_.some(sites, {no: 2, name: 'is'})

// 실행결과
true

실제로 해당 값이 일치하므로 true를 반환하는 것을 알 수 있습니다. 이처럼 여러 개의 조건을 사용해도 some()은 동작하게 됩니다.

한 가지 더 알아보겠습니다. 조건은 다음과 같습니다.

- no는 2이다
- name은 'free'이다


이번에도 결과를 알아봅니다.
_.some(sites, {no: 2, name: 'free'})

// 실행결과
false

no가 2인 것은 일치하지만 name은 'free'가 아니므로 조건에 일치하지 않죠. 결과가 false로 나오게 됩니다.


여기까지 lodash의 some() 메소드에 대하여 간략하게 알아봤습니다. lodash에서 자주 사용되는 메소드이므로 꼭 알아둬야 할 메소드입니다.

Previous

lodash 소팅, 정렬하기, sortBy()

Previous

lodash 배열의 첫 번째 값 반환, head()