我的代码从第一个数组中的第一项开始,并遍历第二个数组。如果第一个数组中的第一项与第二个数组中的项相同,则将值打印到控制台。因此,在此摘要中,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循环
答案 0 :(得分:1)
您尚未将按钮链接到循环!将循环包装到函数中,然后将“ 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