javascript - 过滤数组中的重复值

标签 javascript jquery dhtml

我有一个对象数组,如下所示。第一段代码位于一个循环内,其中创建了“Item”的多个对象并将其推送到数组中。

此处提供了问题示例:http://jsfiddle.net/X6VML/
请注意更改文本框中的值如何显示重复的项目。

 // class
 var Item = function(label, value) {
    this.Label = label;
    this.Value = value;
 };

 var obj = new Item("My Label", "My Value");

 // adds object onto array
 itemArray.push(obj);

我遇到的问题是数组可能包含重复的对象,我需要在将对象列表渲染到表中之前过滤掉这些重复的对象,如下所示:

  for (var i = 0; i < itemArray.length; i++) {
      $('.MyTable').append("<tr><td>" + itemArray[i].Label + "</td><td>" + itemArray[i].Value + "</td></tr>");
  }

我可以通过值相同来识别它是否是重复的。如何根据数组中是否已存在值来过滤对象列表?

非常感谢

最佳答案

只是不要在数组中添加重复的项目:

var item = new Item("My Label", "My Value1");

if(!$.grep(itemArray, function(obj) { return obj.Value == item.Value; }).length)
  itemArray.push(item);

如果 itemArray 中已经存在一个值为 "My Value1" 的对象,则不要添加它。

关于javascript - 过滤数组中的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17448272/

相关文章:

HTML5 推测性问题 : Voicechat?

javascript - 我怎样才能准确得到 .this 指向的内容

javascript - RaphaelJS/Javascript 更新路径而不是创建新路径

javascript - 如何将 Ember Data 序列化器与 JQuery AJAX 请求结合使用?

javascript - href onclick 在某些页面上不起作用

javascript - Jquery 2.1 - 单击时堆叠调用

javascript - Jquery 阻止 drop 事件发生

javascript - html 输入字段限制为手机上的数字

html - 动态 HTML 到 PDF

javascript - 网页上的电子表格对象