uniq
var a = [ {n: "name", v: 4}, {n: "value", v: 5}, {n: "fire", v: 4}, {n: "event", v: 5}, {n: "fire", v: 4}, ]; function uniq(array, callback) { var hash = {} return array.filter( function (a) { var key = callback.call(this, a); var b = (hash[key]); (b) ||( hash[key] = 1); return !b; } ); } uniq(a, function (a) { return a.n ; } ); // [Object n=name v=4, Object n=value v=5, Object n=fire v=4, Object n=event v=5] var callback = function (a) { return a.v ; }; uniq(a, callback ); // [Object n=name v=4, Object n=value v=5] uniq(a, callback ).map(callback); // [4, 5]