比较一个数组中的两个数字,看看它们在javascript中是否相等

时间:2017-10-12 01:31:00

标签: javascript

所以我创建了一个匹配的游戏,这是我的点击监听器:

let clicked = -1;
var values = [];

//on click listener function for squares
var box_clicked = function(box){
box.addEventListener("click", function(){
    clicked = clicked + 1;

    //HERE ARE THE VALUES THAT I WANT TO COMPARE
    var value = this.innerHTML;
    values.push(value);
    if(clicked === 2){
        twoClicked();
    }
    console.log(clicked);
    $(this).addClass("fade z-index");
 });
}

因此,当点击等于2并调用twoClicked()函数时,此代码将运行:

var twoClicked = function(){
    $("div").removeClass("fade z-index");
    clicked = 0;
    var third_value = values.pop(2);
    console.log(values);

    var x = values.indexOf(0);
    var y = values.indexOf(1);
    alert(x);// this alerts -1 for some reason
    alert(y);// this alerts -1

    //if x and y equal then alert "A MATCH"

    values = [];
    values.push(third_value);

}

如果我提醒x或y它返回-1,为什么它不能给我我点击的两个方框的值。

check out the game here 如果您想要完整的代码,请查看here

1 个答案:

答案 0 :(得分:2)

indexOf函数返回找到值的第一个元素的索引。如果在数组中找不到该值,则返回-1。

此代码

var x = values.indexOf(0);

...将返回包含0的第一个元素的索引。如果没有元素设置为0,则返回-1。

如果你想要索引为0的元素的值,只需使用:

var x = values[0];