我正在进行战舰游戏,为了测试两艘船是否重叠,我制作了两个阵列,一个包含船只所占据的块的所有X位置,一个包含所有Y位置。
我需要以某种方式知道我的数组中是否存在重复值,并知道这些重复项发生的索引。我在这里查找了一些解决方案,但都没有。它们主要包含sort,但排序会更改数组中值的顺序。有没有办法做到这一点?
答案 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);
}
}
}
希望这有帮助。