Как найти дубликаты в массиве с помощью jquery

У меня есть массив JQuery:

var arr = $('input[name$="recordset"]');

Я получаю значение массива, как 8 или 6

Если значения массива повторяются или дублируются, мне нужно показать "пожалуйста, не повторяйте значения". Если нет, мне нужно продолжить.

Используя jQuery, кто-нибудь может сказать мне, как найти повторяющиеся значения?

4 ответа

Решение
var unique_values = {};
var list_of_values = [];
$('input[name$="recordset"]').
    each(function(item) { 
        if ( ! unique_values[item.value] ) {
            unique_values[item.value] = true;
            list_of_values.push(item.value);
        } else {
            // We have duplicate values!
        }
    });

То, что мы делаем, - это создание хеша для перечисления значений, которые мы уже видели, и списка для хранения всех уникальных значений. Для каждого ввода, который возвращает селектор, мы проверяем, видели ли мы уже значение, а если нет, то добавляем его в наш список и добавляем в наш хэш уже увиденных значений.

Надеюсь, что приведенные ниже фрагменты помогут, если кто-то ищет такие требования

var recordSetValues = $('input[name$="recordset"]').map(function ()    {
          return this.value;
      }).get();     
var recordSetUniqueValues = recordSetValues.filter(function (itm, i,    a) {
          return i == a.indexOf(itm);
      });
if (recordSetValues .length > recordSetUniqueValues.length)
      { alert("duplicate resource") }
// For every input, try to find other inputs with the same value
$('input[name$="recordset"]').each(function() {
   if ($('input[name$="recordset"][value="' + $(this).val() + '"]').size() > 1)
      alert('Duplicate: ' + $(this).val());
});
$('form').submit(function(e) {

    var values = $('input[name="recordset[]"]').map(function() {
      return this.value;
    }).toArray();

    var hasDups = !values.every(function(v,i) {
      return values.indexOf(v) == i;
    });
    if(hasDups){
       // having duplicate values
       alert("please do not repeat the values");
       e.preventDefault();
    }

});
Другие вопросы по тегам