使用Javascript中的indexOf将变量类型编号与数组进行比较

时间:2019-02-23 19:54:41

标签: javascript arrays indexof

我已经向按钮添加了click事件监听器。它调用按钮YESNO。基本上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";
      }

   }
}

2 个答案:

答案 0 :(得分:4)

if语句将评估传入的任何布尔值。

它不会执行“ true”分支的唯一值都是伪造的值:0nullundefined'',{{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()。