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

How to check for duplicate values in an array and return the index in JavaScript?

本文关键字:JavaScript 索引 返回 何检查 检查 数组      更新时间:2023-09-26

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

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

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

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);
        }
    }
}

希望这能有所帮助。