如何检查数组中的重复值并在JavaScript中返回索引?

时间:2016-01-05 00:14:07

标签: javascript arrays

我正在进行战舰游戏,为了测试两艘船是否重叠,我制作了两个阵列,一个包含船只所占据的块的所有X位置,一个包含所有Y位置。

我需要以某种方式知道我的数组中是否存在重复值,并知道这些重复项发生的索引。我在这里查找了一些解决方案,但都没有。它们主要包含sort,但排序会更改数组中值的顺序。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

这是一个在数组中查找重复元素的代码:

arr = [1, 1 , 2 , 2 , 2 , 3 , 4 , 1 , 5];

for ( i = 0; i < arr.length -1 ; i ++){
    for (j=i+1; j < arr.length; j++ ){
        if (arr[i] == arr[j]){
            console.log("Current element" + arr[i]);
            console.log("initial index:" + i);
            console.log("index:" + j);
        }
    }
}

如果你想与另一个数组进行比较:

arr = [1, 1 , 2 , 2 , 2 , 3 , 4 , 1 , 5];
arr2 = [1, 2, 3, 4, 4, 4, 5, 2];

for ( i = 0; i < arr.length ; i ++){
    for (j=0; j < arr2.length; j++ ){
        if (arr[i] == arr2[j]){
            console.log("Current element" + arr[i]);
            console.log("initial index:" + i);
            console.log("index:" + j);
        }
    }
}

希望这有帮助。