이 장에서는 코드 예제를 통해 간단한 4자리 난수 함수를 구현하는 방법을 소개합니다.
이를 달성하는 비교적 간단한 방법은 숫자와 문자에서 반복되지 않는 4개의 문자를 무작위로 선택하는 것입니다.
코드 예시는 다음과 같습니다.
function only(ele,arr){ if(arr.length==0){ return true; } for(var j=0;j<arr.length;j++){ if(ele==arr[j]){ return false; }else{ return true; } } } var arr=[0,1,2,3,4,5,6,"a","b","c","d","e","f","g"]; (function(){ var randNum=null; var old=[]; var str=""; function done(){ randNum=Math.floor(Math.random()*14); if(only(randNum,old)){ str=str+arr[randNum]; old.push(randNum); } else{ done(); } } for(var index=0;index<4;index++){ done(); } console.log(str); })(arr)
위 코드는 우리의 요구사항을 충족합니다. 위 코드의 구현 과정을 소개하겠습니다.
1. 코드 주석:
1.function only(ele,arr){}, 이 함수는 지정된 인덱스가 사용되었는지 여부를 확인하고 중복을 피하기 위해 임의의 숫자를 배치할 수 있습니다.
2.if(arr.length==0){}, 배열이 비어 있으면 중복 가능성이 없다는 의미이며 true를 반환합니다.
3.for(var j=0;j
6.var randNum=null, 변수를 선언하고 초기 값을 null에 할당하여 무작위로 생성된 배열 인덱스를 저장하는 데 사용됩니다.
7.var old=[], 이미 나타난 배열 인덱스 값을 저장하기 위해 빈 배열을 생성합니다.
8.var str="", 생성된 난수를 저장하기 위해 빈 문자열을 만듭니다.
9.function done(){}, 이 함수를 사용하여 난수를 얻을 수 있습니다.
10.randNum=Math.floor(Math.random()*14), 배열의 인덱스 값을 가져옵니다.
11.if(만(randNum,old)){
str=str arr[randNum];
old.push(randNum);
}, 사용되었는지 여부를 확인하고, 그렇지 않은 경우 배열 요소를 가져와 str 문자열에 추가하고 마지막으로 이 인덱스 값을 이전 배열에 추가합니다.
12.else{ 완료();
}, 이미 사용된 경우 여기에서 재귀를 사용하여 다시 가져옵니다.
13.for(var index=0;index<4;index ){
완료();
}, for 루프를 사용하여 4개의 난수를 얻습니다.
출처: http://www.softwhy.com/forum.php?mod=viewthread&tid=16493