Get unique objects from array based on single attribute
arrays, javascript, jquery, object, unique
Solution
Use `Array.filter` and a temporary array to store the dups:
function filterByName(arr) {
var f = []
return arr.filter(function(n) {
return f.indexOf(n.name) == -1 && f.push(n.name)
})
}
Demo: http://jsfiddle.net/mbest/D6aLV/6/
Problem
Let's say we have the following: ``` node[1].name = "apple"; node[1].color = "red"; node[2].name = "cherry"; node[2].color = "red"; node[3].name = "apple"; node[3].color = "green"; node[4].name = "orange"; node[4].color = "orange; ``` if I use jQuery.unique(node) I will get all the original nodes because they all have a different name OR color. What I want to do is only get the nodes with a unique name, which should return ``` node[1] (apple) node[2] (cherry) node[4] (orange) ``` It should not return 3 because it is the same fruit, even though we have green and red apples.