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

标签 javascript arrays for-loop duplicates

我正在连续游戏中创建坐标平面三,所以我必须找出数组中是否有三个具有相同值的数字,但没有对数组进行排序,因为该数组表示添加到游戏过程中的坐标平面... 例如,假设我已将 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/

相关文章:

javascript - 在 Karma 单元测试中使用 ui-router 和指令时出现意外 GET

python - 正则表达式for循环在python中的列表

javascript - 我如何才能通过

javascript - 为什么我的 jquery 循环对两个数组的值进行不正确的比较?

javascript - anchor ng-click 调用 2 个方法

javascript - 如何使用 JavaScript 获取跨浏览器的文字样式字符串?

arrays - 如何将属性项计为类内的数组?

c++ - 如何将数组传递给 C++ 中的类

javascript - 如何通过 promise 映射

javascript - Node REPL : Cannot read property '0' of undefined when I add a property to the Object. 原型(prototype)中的类型错误