2012-08-10 3 views
-1

가능한 중복 :
Generating random numbers in Javascript in a specific range?자바 스크립트는 가변 길이의 숫자를 생성

내가의 길이가 4라고 입력, 내가 0 9999

사이에 다시 번호를해야하는 경우

그리고 나는 그것이 0으로 채워지 길 원한다. (0004),하지만 그것은 또 다른 기능 일 것이다.

+1

지금까지 시도했다 게시하시기 바랍니다. – thegrinner

+0

숫자 패딩에 대해서는 http://stackoverflow.com/questions/1267283/how-can-i-create-a-zerofused-value-using-javascript –

+0

을 참조하십시오. 임의 번호 여야합니까? –

답변

0

자바 스크립트이므로이 시나리오에서는 약한 타이핑을 활용할 수 있습니다. 이를 수행하는 한 가지 특별한 해킹 방법은 0-9 사이의 n 개의 숫자를 생성하고 문자열 연결을 사용하는 것입니다.

이 게시물에 대한 답변이있는 것 같습니다 : JavaScript expression to generate a 5-digit number in every case 및 연결 패드 수 있습니다.

편집이 : 그래서 여기 내 그것의 구현입니다 : for 루프에서

function random(x){ 
    var rand = Math.floor(Math.random() * Math.pow(10,x)); 
    var dummy = rand; 
    while (dummy<Math.pow(10,x-1)){ 
    rand = "0" + rand; 
    dummy = dummy*10; 
    } 
    return rand; 
} 
1
for(var x = 5, i = 0, y = ""; i < x​;​ ++i, y +​​= "9"); 
Math.floor(Math.random()*parseInt(y)); //random number 

, X는 사용자의 입력 길이 될 것입니다. 필요하다면 x의 정의를 루프 외부로 옮길 수도 있습니다.

당신은 또한 (참고로, 아마 처음 일을)이 시도하고 하나가 더 빨리 실행되는 볼 수 있습니다 :

for(var x = 5, y = "", i = 0; i < x; ++i, y += Math.floor(Math.random()*9)); 
parseInt(y); //random number 
0

이 시도 :로

function getNumber(range){ 
var max = Math.pow(10,range); 

var num = Math.Random() * max; 
} 

zerofill 당신이있어 더 나은 오프에 대한 네이선이 그의 말에 제안한 것을 시도해보십시오. this

0

글쎄, 여기에 숫자 부분이 있습니다. 아마 패딩 부분을 알아낼 수 있습니다.

function makeNumber(number){ 
    var nines = ""; 
    var returnNumber = ""; 
    for(var i = 0; i < number; i++) 
    { 
     nines+= "9"; 
    } 
    for(var i = 0; i < number; i++) 
    { 
     var returnNumber += String(Math.Random() * parseInt(nines)); 
    } 
    return returnNumber; 
} 
+0

이것은 for 루프와 중괄호 사이에 아무 문장없이 쉽게 수행 할 수 있습니다. 내 해결책을 아래에서보십시오. – jeremy

+0

그래, 할 수있어, 고마워.] – skeddles

+0

@Nile yeah, 나는 그것을 보았다. 좋은 생각. –

1
function getRandom(c){ 
    var r = (Math.random() * Math.pow(10, c)).toFixed(0); 
    while(r.length != c) 
     r = "0" + r; 
    return r; 
} 

getRandom(3); 
+0

이것은 훌륭한 솔루션이며 잘 작동하며 0 패딩 내장. 감사합니다! – skeddles

0

실수의 종류 만 작동합니다

var length = 4; //<-- or get however you want 
var big = ""; 
for (i=0; i<length; i++) { 
    big = big + "9"; 
} 
var big = parseInt(big); 
var random = Math.floor(Math.random() * big).toString(); 
var random_len = random.toString().length; 
if (random_len < length) { 
    var random_padded = random.toString() 
    padding = length - random_len; 
    for (i=0; i<padding; i++) { 
     random_padded = "0" + random_padded; 
    } 
    random = random_padded 
} 
alert(random); 
관련 문제