반응형
최소부터 최대까지 랜덤 하게 숫자를 가져와야 할 경우가 많다.
뭐 예를 들어서, 1부터 10까지 숫자 중에 하나를 가져와야 할 경우가 대표적인 예이다.
최소~최대 랜덤 숫자 가져오기
1
2
3
|
function getRandom(min, max) {
return Math.floor((Math.random() * (max - min + 1)) + min);
}
|
cs |
Math.floor 와 Math.random
Math함수 두 가지를 사용해서 손쉽게 랜덤 하게 숫자를 가져오는 함수를 만들 수 있다.
위에 그림처럼 최소값/최대값을 지정해줘서 넘겨주면, 우리가 원하는 랜덤한 결과값을 얻을 수 있다.
그렇다면, 중복없이 랜덤한 값을 n개를 얻고 싶을 경우도 만들어봤다.
최소~최대 N개 랜덤 숫자 가져오기(중복없이 배열)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
// 랜덤하게 추출
function getRandom(min, max) {
return Math.floor((Math.random() * (max - min + 1)) + min);
}
// 랜덤하게 추출 (array Ver)
function getRandomArray(min, max, count) {
// 종료
if (max - min + 1 < count) return;
// 배열 생성
var rst = [];
while (1) {
var index = getRandom(min, max);
// 중복 여부를 체크
if (rst.indexOf(index) > -1) {
continue;
}
rst.push(index);
// 원하는 배열 갯수가 되면 종료
if (rst.length == count) {
break;
}
}
// 정렬
return rst.sort(function (a, b) {
return a - b;
});
}
|
cs |
코드는 랜덤하게 추출했던 함수를 재사용했고
while 반복문을 수행하면서, count값과 배열의 크기가 같으면 리턴해주는 함수이다.
마지막에 정렬까지 해주는 센스를 발휘하면서
우리는 n개의 중복되지 않은 배열(Array)을 얻을 수 있다.
다양한 방법으로 응용이 가능하니, 여러가지 테스트 해보자.
궁금하시거나 필요한 함수가 있으시면 댓글 부탁드려요!ㅎㅎ
반응형
'개발 > Javascript' 카테고리의 다른 글
[Javascript] TEXT 개행(newline) 처리해주기. (4) | 2020.02.12 |
---|---|
[Javascript] 현재 스크롤 위치 퍼센트로 구하기 (0) | 2020.01.28 |
[Javascript] splice을 이용해 배열을 비교해보자. (4) | 2020.01.21 |
[Javascript] QueryString 가져오기. (0) | 2020.01.10 |
[Javascript] 배열(Array) 랜덤하게 섞기 (6) | 2019.12.04 |