Jquery检查数组是否包含重复的字符串

如何检查数组是否包含重复的字符串,我有validateArray = [‘sa’,’sa’,’yu’]我使用了SO中的以下函数,但同样不适用于我。

checkDuplicate = function (reportRecipients) { if (reportRecipients.length > 1) { var recipientsArray = reportRecipients.toString().split(','); for (a in recipientsArray) { if(reportRecipients.indexOf(a) != reportRecipients.lastIndexOf(a)){ return true; break; } } } return false; } 

这对我有用:

 var reportRecipients = ['AAA', 'XYZ', 'AAA', 'ABC', 'XXX', 'XYZ', 'PQR']; var recipientsArray = reportRecipients.sort(); var reportRecipientsDuplicate = []; for (var i = 0; i < recipientsArray.length - 1; i++) { if (recipientsArray[i + 1] == recipientsArray[i]) { reportRecipientsDuplicate.push(recipientsArray[i]); } } 

希望有所帮助。

看看这个:

 function getDistinctArray(arr) { var compareArray = new Array(); if (arr.length > 1) { for (i = 0;i < arr.length;i++) { if (compareArray.indexOf(arr[i]) == -1) { compareArray.push(arr[i]); } } } return compareArray; } 

这是一个工作小提琴

如果排序function不正常,请尝试这样做:

  var all_list= ['sa','sa','yu'] var duplicates_list = []; var unique_list = []; $.each(all_list, function(key, value){ if($.inArray(value, unique_list ) == -1){ unique_list.push(value); }else{ if($.inArray(value, duplicates_list ) == -1){ duplicates_list.push(value); } } }); //duplicated elements console.log(duplicates_list ) 

只需使用unique()方法。

 $.unique(reportRecipients); 

https://api.jquery.com/jQuery.unique/