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

HOME > lodash

lodash collection에서 랜덤한 값 얻기, sample(), sampleSize()

Last Modified : 2018-08-02 / Created : 2018-07-30
5,765
View Count
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가 데이터의 총 수보다 많은 경우 데이터의 개수만큼 반환하게됩니다.

Previous

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

Previous

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