检查元素是否在数组中重复出现

4
我需要知道一个元素是否在数组中出现了两次或更多次。
var arr = [elm1,elm2,elm3,elm3,elm4,elm5,elm5,elm5,elm6,elm7] ;
if(elm is in array by many time ){
      // do some code with this element
}else{
      // other stuff ;;
}

有什么建议吗?
2个回答

30

countInArray函数可能是您的一个选择

function countInArray(array, what) {
    return array.filter(item => item == what).length;
}

或者像这样,这可能更好地帮助您理解代码并在需要时进行一些调整!:

var list = [2, 1, 4, 2, 1, 1, 4, 5];  

function countInArray(array, what) {
    var count = 0;
    for (var i = 0; i < array.length; i++) {
        if (array[i] === what) {
            count++;
        }
    }
    return count;
}

countInArray(list, 2); // returns 2
countInArray(list, 1); // returns 3

2
这是经典的解决方案。 - Hidayt Rahman

0
function check(){
var arr =['1','2','3','3','4'];
  for (i=0; i<arr.length;i++){
    for (x=0;x<arr.length;x++){
      if(arr[i]==arr[x] && i != x){
        console.log('SAME ones in ARRAY: '+arr[i]);
      }else console.log('no same ones');
    }
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接