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에서 자주 사용되는 메소드이므로 꼭 알아둬야 할 메소드입니다.