函数有时会说一个对象在数组数组中不存在

时间:2017-06-01 09:41:30

标签: javascript arrays

我有一个数组,填充了包含多个对象的数组。我有一个函数,如果一个对象存在或不存在,则返回,但有时它无法找到一个肯定在那里的对象。我放了大量的控制台日志,所以我可以跟踪所有内容并向您显示控制台。这是代码:

var adjacent = inChain(x, y - 1, array);
array[adjacent].push({x: x, y: y})

所以在这里我调用inChain函数来搜索对象,然后返回索引。错误是在第二行的push处,好像它找不到它,相邻将为null。

功能:

function inChain(x, y, array)
{
    var currentPiece = {x: x, y: y};

    console.log("checking array below");
    console.log(array);
    console.log("checking if this object exists");
    console.log(currentPiece);

    for(let i = blackChains.length; i--;)
    {
        for(let j = blackChains[i].length; j--;)
        {
            if (JSON.stringify(blackChains[i][j]) === JSON.stringify(currentPiece))
            {
                console.log("it does at " + i);
                return i;
            }
        }
    }    
    console.log("doesnt exist");
    return null;
}

因为你可以通过控制台日志看到,它会说每一步,首先它会显示它所查找的数组,然后是它所寻找的对象。下面是它的动态截图:

enter image description here

所以你可以看到数组包含1个包含1个对象的数组。属性为x:3,y:2

的对象

然后你可以看到它搜索的对象,一个具有完全相同属性的对象

有谁知道为什么它有时候找不到它?有时它呢?

0 个答案:

没有答案