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]