javascript - 如何设置一个按钮来执行for循环?

标签 javascript arrays for-loop

我的代码从第一个数组中的第一项开始,然后迭代第二个数组。如果第一个数组中的第一个项目与第二个数组中的项目相同,则该值将打印到控制台。因此,在此代码片段中,Nandos 和 KFC 应打印到控制台。

一旦第一个数组中的第一个项目与第二个数组中的所有项目进行了比较,我们将移动到第一个数组中的第二个项目并将其与第二个数组中的所有项目进行比较。

我想在单击按钮后执行 for 循环。

我尝试将 for 循环设为一个函数,并在单击按钮后执行该函数,但什么也没发生。

<button id="search">Search</button>
var restaurantsOne = ["Nandos", "King Rooster", "Chick-Fil-A", "Dominos", "KFC"];
var restaurantsTwo = ["Nandos","MacDonalds","Burger King","KFC","Pizza Hut"];
  for (var i=0; i<=restaurantsOne.length; i++) {
    for (var j=0; j<=restaurantsTwo.length; j++){
      if (restaurantsOne[i] == restaurantsTwo[j]){
        console.log(restaurantsOne[i]);
      }
    }
  }

我希望在单击按钮后执行 for 循环

最佳答案

您尚未将按钮链接到循环!将循环包装在函数中,然后将“onclick”处理程序添加到引用循环函数的按钮。

var restaurantsOne = ["Nandos", "King Rooster", "Chick-Fil-A", "Dominos", "KFC"];
var restaurantsTwo = ["Nandos","MacDonalds","Burger King","KFC","Pizza Hut"];

function compareArrays () {
  for (var i = 0; i < restaurantsOne.length; i++) {
    for (var j = 0; j < restaurantsTwo.length; j++){
      if (restaurantsOne[i] == restaurantsTwo[j]){
        console.log(restaurantsOne[i]);
      }
    }
  }
 }
<button id="search" onclick="compareArrays()">Search</button>

此外,值得一提的是,您应该使用 i < restaurantsOne.length而不是i <= restaurantsOne.length因为数组索引从 0 开始,而 array[array.length] 实际上会引用一个不存在的索引。

即。

restaurantsOne.length // 5

restaurantsOne[0] // Nandos
restaurantsOne[1] // King Rooster
restaurantsOne[2] // Chick-
restaurantsOne[3] // Dominoes
restaurantsOne[4] // KFC
restaurantsOne[5] // undefined

关于javascript - 如何设置一个按钮来执行for循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56862004/

相关文章:

javascript - 如何在 HTML 中的每个项目之间延迟打印列表

javascript - 替换 Javascript 字符串数组中的最后一个字母

javascript - 如何在浏览器中读取 Connect Js cookie?

javascript - 如果值不满足给定条件,如何将其他数组元素包含到新数组中

Java main 方法参数处理,取决于用户输入

javascript - 在 for 循环中将参数传递给 setTimeout

java - 如何在java中使用for循环动态创建二维数组?

javascript - 如果不选择自动完成为空

java - 读取数组列表 (Java)

arrays - 快速数组/字典建议