平等操作员不起作用

时间:2018-03-06 08:59:20

标签: javascript arrays

我将用户输入与Array中的元素进行匹配。 "指数=== lengthOfBoat"即使用户输入与数组中的数字匹配,也不会输出" Works"如果我使用">"标志,控制台输出" Works"。

认为这应该很简单。

我做错了什么?

var lenghtOfBoat = [4, 5, 6, 7, 8, 9];
var inputBoatLenght = document.getElementById("boatLenght");

inputBoatLenght.addEventListener("change", function() {
    var index = lenghtOfBoat.indexOf(inputBoatLenght);

    if (index === lenghtOfBoat) {
        console.log("Works");
    }
    else {
        console.log("Nooo");
    }
})

<!DOCTYPE html>
<html>
    <head>
        <title>Båd Dækning</title>
    </head>
    <body>
        <input type="number" name="boatLenght" id="boatLenght" placeholder="Båd Længde">
        <input type="number" name="boatHK" id="boatHK" placeholder="Båd HK"> 

        <script type="text/javascript" src="script.js"></script>
    </body> 
</html>

BR 马丁

5 个答案:

答案 0 :(得分:0)

您可以在这种情况下使用includes,这会返回boolean

if (lenghtOfBoat.includes(inputBoatLenght)) {
  console.log("Works");
}
else {
   console.log("Nooo");
}

答案 1 :(得分:0)

您只需检查lenghtOfBoat.indexOf(+this.value) > -1是否可以执行此操作:

&#13;
&#13;
var lenghtOfBoat = [4, 5, 6, 7, 8, 9];
var inputBoatLenght = document.getElementById("boatLenght");

inputBoatLenght.addEventListener("change", function() {
  if(lenghtOfBoat.indexOf(+this.value) > -1){
    console.log("Works");
  }else{
    console.log("Nooo");
  }
})
&#13;
<input type="number" name="boatLenght" id="boatLenght">
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以检查lengthOfBoat数组是否包含inputBoatLength。您需要将inputBoatLength转换为数字,以检查它是否存在于数组中。

var lenghtOfBoat = [4, 5, 6, 7, 8, 9];
var inputBoatLenght = document.getElementById("boatLenght");
inputBoatLenght.addEventListener("change", function() {

  var inp = +this.value;
  if (lenghtOfBoat.includes(inp)) {
    console.log("Works");
  } else {
    console.log("Nooo");
  }

})

答案 3 :(得分:0)

getElementById为您提供HTMLElement,但您需要获取所选元素的值。 然后该值将是一个字符串。因此,使用parseInt()或Number()转换为数字以将其与索引进行比较。

var lenghtOfBoat = [4, 5, 6, 7, 8, 9];
var inputBoatLenght = document.getElementById("boatLenght").value;

inputBoatLenght.addEventListener("change", function() {
    var index = lenghtOfBoat.indexOf(parseInt(inputBoatLenght));


    if (index === lenghtOfBoat) {
        console.log("Works");
    }
    else {
        console.log("Nooo");
    }
})
<input type="number" name="boatLenght" id="boatLenght" placeholder="Båd Længde">
        <input type="number" name="boatHK" id="boatHK" placeholder="Båd HK"> 

    

答案 4 :(得分:0)

indexOf()方法返回可在数组中找到给定元素的第一个索引,如果不存在则返回 -1 。 替换:

    create table mapplication as 
    select cst_id
    %do I = 1 %to &N_var;
      %let variable = &&variable&i;
      %let innerness = from &map as INNER where INNER.variable="&variable" and INNER.start < OUTER.&variable <= INNER.end;
      , &variable
      , ( select INNER.woe &innerness ) as &variable._woe
      , ( select INNER.beta &innerness ) as &variable._beta
      , ( select INNER.start &innerness ) as &variable._start
      , ( select INNER.end &innerness ) as &variable._end
    %end;
    from &data as OUTER;

由:

index === lenghtOfBoat

here

了解详情