lodash의 sample() 그리고 sampleSize() 에 대하여 알아봅니다.
sample() 그리고 sampleSize()는 collection에 적용 가능하며 랜덤한 값을 반환해줍니다. 이를 사용하면 랜덤한 값이 필요한 경우 간단하게 얻을 수 있습니다. 먼저 sample() 부터 알아봅니다.
# sample() 알아보기
sample()은 collection에서 랜덤한 값을 하나 반환합니다. 문법은 아래와 같습니다.
_.sample(Collection)
객체나 배열에 적용가능하며 sample()은 여러개가 아닌 하나를 반환하는 것이 sampleSize()와 다른 점입니다. 아래의 예제를 봐주세요.
sample(['web', 'is', 'free']);
// 출력결과
'is'
sample(['web', 'is', 'free']);
// 출력결과
'free'
위와 같이 랜덤하게 하나의 값을 반환해줍니다. 아래는 객체인 경우이니다.
_.sample([{a:1}, {b:2}, {c:3}]);
// 출력결과
{b: 2}
# sampleSize() 알아보기이번에는 sampleSize()입니다. 만약 테스트 등의 목적으로 정해진 개수의 sample값이 필요하다면 이때는 sample()이 아닌 sampleSize()를 사용합니다.
_.sampleSize(Collection, size)
2번째 인자로 반환할 개수를 지정할 수 있습니다. 아래의 예제를 봐주세요.
sites = [
{ name: 'web' },
{ name: 'is' },
{ name: 'free' }
];
위의 sites를 가지고 sampleSize()를 수행하면 아래와 같이 나타납니다.
_.sampleSize(sites, 1);
// 반환결과
[
{ name: 'is' }
]
이번에는 size를 2로 실행해보겠습니다.
_.sampleSize(sites, 2);
// 반환결과
[
{ name: 'web' },
{ name: 'free' }
]
이처럼 원하는 개수만큼의 데이터를 얻을 수 있습니다.
참고로 size가 데이터의 총 수보다 많은 경우 데이터의 개수만큼 반환하게됩니다.