如果for循环中的condintion返回

时间:2016-09-28 12:01:33

标签: javascript loops if-statement for-loop

function guid (l) {
    if(l === undefined){
        l = 32;
    }
    var ascii = '';
    for(var x=0; x<l; x++){
        var rnd = Math.floor(Math.random()*(122 - 48))+48;
        var convert = String.fromCharCode(rnd);
        if(!(convert.match(/[a-zA-Z0-9]/g))){
        // how to return 'rnd' until the lenght of the parameter is complete 
        }else{
            ascii += convert;
        }
    }
    return ascii;

}
console.log(guid());

这是我的代码。你可以给我建议如何执行我的if语句吗?我的输出现在基于rnd传递if语句的次数。

2 个答案:

答案 0 :(得分:0)

你应该使用while

var rnd = Math.floor(Math.random()*(122 - 48))+48;
var convert = String.fromCharCode(rnd);

while(!(convert.match(/[a-zA-Z0-9]/g))) {
   rnd = Math.floor(Math.random()*(122 - 48))+48;
   convert = String.fromCharCode(rnd);
}

答案 1 :(得分:0)

您可以使用while循环并检查ascii的长度。

&#13;
&#13;
function guid (l) {
    var ascii = '', convert;
    l = l || 32;
    while (ascii.length < l) {
        convert = String.fromCharCode(Math.floor(Math.random() * (122 - 48)) + 48);
        if (convert.match(/[a-zA-Z0-9]/g)){
            ascii += convert;
        }
    }
    return ascii;

}
console.log(guid());
&#13;
&#13;
&#13;