我有一个数组,填充了包含多个对象的数组。我有一个函数,如果一个对象存在或不存在,则返回,但有时它无法找到一个肯定在那里的对象。我放了大量的控制台日志,所以我可以跟踪所有内容并向您显示控制台。这是代码:
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;
}
因为你可以通过控制台日志看到,它会说每一步,首先它会显示它所查找的数组,然后是它所寻找的对象。下面是它的动态截图:
所以你可以看到数组包含1个包含1个对象的数组。属性为x:3,y:2
的对象然后你可以看到它搜索的对象,一个具有完全相同属性的对象
有谁知道为什么它有时候找不到它?有时它呢?