繁体   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