我正在用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;
    }
}

10-07 17:09