我正在用JS编写代码,我必须测试代码-我必须检查2个数组中的元素是否相同。
所以我有一个数组:boreholes = [[66000, 457000],[1111,2222]....];
,我想检查该数组是否包含例如元素。 [66000,457000]所以我做了:boreholes.indexOf([66000,457000])
但它返回-1,因此我通过以下方式迭代了槽数组:
for (var i = 0; i< boreholes.length; i++){
if (boreholes[i] == [66000, 457000]){
console.log('ok');
break;
}
};
但我仍然一无所有。有人可以向我解释我在做什么错吗?
最佳答案
您正在比较不同的对象。比较对象时,仅当两个比较对象是同一对象时,比较的结果才为true
。 。
var a = [1,2,3];
var b = a;
a === b //true
b = [1,2,3];
a === b //false, b is not the same object
要比较这样的数组,您需要分别比较它们的所有元素:
for (var i = 0; i < boreholes.length; i++) {
if (boreholes[i][0] == 66000 && boreholes[i][1] == 457000) {
console.log('ok');
break;
}
}