gpt4 book ai didi

javascript - JS 如果有两个以上重复项,则查找数组中重复值的索引

转载 作者:行者123 更新时间:2023-11-28 11:50:25 27 4
gpt4 key购买 nike

我正在连续游戏中创建坐标平面三,所以我必须找出数组中是否有三个具有相同值的数字,但没有对数组进行排序,因为该数组表示添加到游戏过程中的坐标平面...例如,假设我已将 6 个点添加到坐标平面,其中 x 坐标存储在下一个数组中:

var arr = [2,2,3,2,7,3];

我需要的循环只计算值 2 的出现次数,因为数字 2 在数组中出现 3 次,因此输出应该是一个新数组(例如名为索引的数组),其精确索引为 nmb 2 次出现已到位...

indices = [0,1,3]

如果某个值出现的次数小于 3,则循环应在到达 arr 末尾时“重置”...

我已经尝试了下一个代码,但它不像我上面描述的那样工作,因为它也计算数字 3 出现的次数...所以,如果 value ,它不会“重置”计数小于 2...

var arr = [2,2,3,2,7,3];
var index = [];
var count = 0;
var current;
for(var i = 0;i<arr.length;i++){
current = arr[i];
//-------------------------------
for(var j=i+1;j<arr.length;j++){
if(arr[j]===current){
count++;
index.push(j);
//+++++++++++
if(j===arr.length-1){
if(count<2){
count = 0;
index = [];
i++;
}
else{
index.unshift(i);
break;
}
}
//+++++++++++
}
}
//-------------------------------
}
alert(index);

感谢您的帮助或建议...

亚历山大

最佳答案

我愿意这样

  
var arr = [2,2,3,2,7,3];

var indices = [];

arr.filter(function(yourArray, index) {
if(yourArray == 2){
indices.push(index)
}
});
console.log(indices)
如果您打印索引,它将包含此输出[0,1,3]

如果你想检查是否有两个以上的重复项,你可以这样做

  

var arr = [2,2,3,2,7,3];
var counts = arr.filter(function(yourArr,index, self){
return !self.indexOf(yourArr)
});

var indices = [];

arr.filter(function(yourArr, index, self){
if(yourArr == 2 && counts.length > 2){
indices.push(index)
}
})
console.log(indices)

关于javascript - JS 如果有两个以上重复项,则查找数组中重复值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38533160/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com