我已经向按钮添加了click
事件监听器。它调用按钮YES
和NO
。基本上indexOf
检查变量foto
中的值是在yesMeetup
数组中还是在notMeetup
数组中。
我尝试调试,但是总是得到“您理解”,并且当我单击NO
按钮时它没有调用调试器
let foto = Math.floor(Math.random() * 20) + 1;
document.querySelector('.btn').addEventListener('click', verify);
function verify() {
var yesMeetup = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15];
var notMeetup = [16, 17, 18, 19, 20];
var notButton = document.getElementById('no');
var yesButton = document.getElementById('yes');
var decisao = document.getElementById('decisao');
debugger;
if (yesButton) {
if (yesMeetup.indexOf(foto)) {
decisao.textContent = "You got it";
} else if (notMeetup.indexOf(foto)) {
decisao.textContent = "wrong";
}
} else if (notButton) {
if (notMeetup.indexOf(foto)) {
decisao.textContent = "You Gou it";
} else if (yesMeetup.indexOf(foto)) {
decisao.textContent = "Wrong";
}
}
}
答案 0 :(得分:4)
if
语句将评估传入的任何布尔值。
它不会执行“ true”分支的唯一值都是伪造的值:0
,null
,undefined
,''
,{{1} },false
。
NaN
在数组中不存在元素时返回Array.prototype.indexOf
,这不是伪造的值之一,因此不是您的-1
条件
if
总是评估为真。
if (array.indexOf(element))
您可以直接与var example = [1,2,3];
if (example.indexOf(4)) {
console.log('still true');
}
进行比较:
-1
或更新的var example = [1,2,3];
if (example.indexOf(4) !== -1) {
console.log('this is not logged');
}
:
Array.prototype.includes
答案 1 :(得分:0)
您可以将单击事件添加到按钮并检查随机变量的值。作为编写代码的方式,它将始终返回两种情况的值。或者,要在运行时检查值,可以使用alert()。