如何使用jquery在数组中查找重复项

时间:2010-12-03 14:34:17

标签: javascript jquery

我有一个jQuery数组:

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

我得到数组的值,如8或6

如果数组值重复或重复,我需要显示“请不要重复值”。如果不是,我需要继续前进。

使用jQuery可以告诉我如何找到重复的值吗?

4 个答案:

答案 0 :(得分:13)

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!
        }
    });

我们正在做的是创建一个哈希来列出我们已经看到的值,以及一个存储所有唯一值的列表。对于每个输入选择器返回我们正在检查我们是否已经看到了该值,如果不是,我们将它添加到我们的列表中将它添加到已经看到的哈希值中值。

答案 1 :(得分:1)

// 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());
});

答案 2 :(得分:1)

希望如果有人寻求此类要求,以下片段会有所帮助

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") }

答案 3 :(得分:1)

$('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();
    }

});