var valueArray = ['ABC','DEF','GHI','ABC','JKL','MNO','DEF'];
var flag =false;
for(var i=0; i<valueArray.length; i++)
{
   for(var j=0; j<valueArray.length; j++)
  {
     if(valueArray[j] == valueArray[i] && j != i)
     {
          flag  = true;
          break;
     }
  }
}
if(flag)
    alert('same values found');


我试图通过检查重复值来验证一个数组,我在上面的代码中使用过,我认为这不是更好的方法。 jquery有什么方法可以解决这个问题,或者有什么好的js代码呢?

最佳答案

不确定jquery,但仅使用一个for循环,性能会更好:

for(var i = 0; i < valueArray.length; i++)
{
  if (valueArray.indexOf(valueArray[i], i+1) != -1) {
    flag = true;
    break;
  }
}


jsPerf测试:http://jsperf.com/check-for-double-occurences

10-04 18:04