我有一个对象数组,如下所示。第一段代码位于一个循环内,其中创建了“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/