簡體   English   中英

如何使用參數反復運行函數?

[英]How do I run a function over and over by using parameters?

我的情況:

function randomLetter(){
    var random = letter[Math.floor(Math.random()*26)];
    return random; 
}

function randomWord(wordLength){
    var random = randomLetter() + randomLetter() + randomLetter();
    return random; 
}

如何編寫使用參數運行x的randomLetter()函數的代碼。
示例:我在參數中寫入3,該函數將給我三個隨機字母。
因此,我將只編寫randomWord(3) ,而不是編寫randomLetter() + randomLetter() + randomLetter() randomWord(3) ,然后得到三個隨機字母。

另一種方法是將每個字母緩沖到一個數組中並返回連接的數組。

function randomWord(wordLength){
    var letters = [];

    for (var i = 0; i < wordLength; i++) {
        letters.push(randomLetter());
    }

    return letters.join("");
}

您可以使用for循環:

function randomWord(x){

    var random = [];

    for(var a = 0; a < x; a++){
        random[a] = randomLetter();
    }

    return random.join("");
}

為此,您可以使用for循環,例如:

function randomWord(wordLength){
  var random =''
  for (var i = 0, i<wordLength, i++) {
    random += randomLetter();
  }
  return random; 
}

'for'關鍵字之后的括號中的第一個參數用0初始化i變量。下一個值i<wordLength是停止條件,如果條件仍然為true,它將在每次運行的開始進行測試,否則它將停止循環播放。 第三個i++是每次循環結束時運行的i++ ,在這種情況下,它將i加1,這與i = i + 1相同。

這里是一些更多信息: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Loops_and_iteration

或遞歸:

 var letters = "abcdefghijklmnopqrstuvwxyz" function randomLetter() { return letters.charAt(Math.floor((Math.random() * 100)) % letters.length) } function getLetters(count) { if (count-- < 1) return ""; return getLetters(count) + randomLetter() + "," } document.getElementById("output").innerText = getLetters(4) 
 <div id="output" /> 

另一個遞歸解決方案:

 function randomLetter() { return ('qwertyuiopasdfghjklzxcvbnm')[Math.floor(Math.random()*26)]; } function randomWord(wordLength) { return (wordLength > 0) ? (randomWord(wordLength - 1) + randomLetter()) : ''; } console.log( randomWord(10) ); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM