簡體   English   中英

允許用戶選擇運行功能的次數

[英]Allow user to select how many times to run a function

我對javascript很陌生。 我已經創建了一個隨機菜單生成器,其中從3個數組中的每個數組中隨機選擇一項(數組是主菜單,甜點,飲料)。 因此,當您單擊“創建訂單”按鈕時,您會得到一個隨機生成的列表(比薩餅,冰淇淋,啤酒等)。 但是,現在我想添加在1到10個菜單之間進行選擇的選項,因此,如果用戶一行中有4個人,則可以選擇“ 4”,並且將隨機生成4個訂單。 因此,我需要運行該功能的用戶輸入的次數。

現在,我的div和button如下所示:

<div class="order">
<h3 id="orderDisplay">
<!--this is where order will display-->
</h3>
</div>

<button onClick="order()">Click to generate order</button>

因此,為了允許用戶選擇我已經開始的訂單數量:

var(numOrders)=提示(“您要下幾筆訂單?”)開關(document.getElementById(numOrders)){

情況“ 1”:document.getElementById('orderDisplay')。innerHTML =(menuOne [randomMenuOne] + MenuTwo [randomMenuTwo] + menuThree [randomMenuThree];);

情況“ 2”:我不確定如何格式化它。 我需要運行功能“菜單”

另外,我想要一個下拉菜單,以便用戶可以選擇1-10,而不是提示。

抱歉,我知道很多。 我只是找不到一個好的教程,而且我什至不確定要用Google做什么。

一種獲得所需結果的方法是在函數周圍包裝一個“ for循環”,其中“ peopleInParty”是用戶為其聚會選擇的人數,“ yourFunction()”是您要使用的函數想要運行X次。

for (int x = 0; x < peopleInParty; x++) {
    yourFunction();
}

有很多方法可以做到這一點。

嘗試了解以下內容:

 i = 0 do console.log("Cooking pizza: "+i),i++ while (i<input.value) 
 <input id="input" value="12" /> 

這是while循環 參見https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/do...while

另一種方法是使用for循環 參見https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Loops_and_iteration

最好看看您的代碼示例。 但是,僅從描述開始,假設您具有三個數組,類似於:

var main = ["chicken", "beef", "pork", "fish", "veggie"];
var dessert = ["cake", "ice cream", "pie", "cupcake", "jello"];
var beverage = ["pop", "beer", "water", "whiskey", "juice"];

您可以創建一個函數,通過從每個數組中隨機選擇一個元素來從這些數組生成菜單。 您可以將其包裝在for循環中,以進行多次操作。

例如:

function createMenu(numberOfMenus) {

  var menus = {};  // Object to hold the menus

  for (var i = 0; i < numberOfMenus; i++) {  // Repeat numberofMenus times

    // Randomly select an element from each array
    var m = main[Math.floor(Math.random() * main.length)];
    var d = dessert[Math.floor(Math.random() * dessert.length)];
    var b = beverage[Math.floor(Math.random() * beverage.length)];

    // Add menu to menus object
    menus[i] = [m, d, b];

  }

  // Return the menus object
  return menus;

}

然后,您可以提示用戶輸入要創建的菜單數,以該數字作為輸入參數來調用該函數,然后對結果進行任何操作。 就像是:

var p = prompt("How many menus?");
console.log(createMenu(p));

這里的主要思想是使用for循環來重復菜單選擇過程任意多次,並使用function作為可重用代碼的形式來執行任務。

希望這可以幫助。

這是一個可以幫助您的代碼段。

單擊按鈕功能后,將觸發orderBtnClick 你是問你要多少才能使用提示符窗口中產生,那么你執行循環功能,需要重復和委托的數量要重復的功能。

 function orderBtnClick() { var numberOfOrders = prompt("How many orders you want to generate?"); repeat(numberOfOrders, orderGenerator) } function repeat(times, fcn) { for (var i = 0; i < times; i++) { fcn(); } } function orderGenerator() { //your code here console.log("Order generated!"); } 
 <button onclick="orderBtnClick()" type="button"> Order! </button> 

暫無
暫無

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

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