IndexOf缺少数组中的值

时间:2015-10-28 00:43:56

标签: javascript arrays return indexof

我意识到当IndexOf在数组中没有找到值时会返回-1,但是,我搜索的值是在数组中。我通过使用console.log

返回数组中的值来确认这一点

以下是我的一些代码(为简单起见):

var xtiles = [];

function assignValue(tile) {
    xtiles.push(tile); //tile is 1 at this point
    checkArray();
}

function checkArray() {
    var temp = xtiles.indexOf(1);
    console.log(temp); //this returns a -1
    console.log(xtiles[0]); //this returns a 1
}

变量'temp'应返回0,因为数组xtiles的索引0中有1。我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

那是因为数字1并不严格等于字符串'1'

  

indexOf()使用strict equality(与===或三等号,运算符相同的方法)将searchElement与数组元素进行比较。

参考文献:

答案 1 :(得分:0)

如果数组的内容是字符串,那么您可以搜索如下:

var temp = xtiles.indexOf(1+""); // force 1 into a string