Javascript: ¿Cómo eliminar un elemento de matriz (objeto JSON) en función del valor de propiedad del elemento?

Me gusta esto:

var arr = [  
            { name: "robin", age: 19 },   
            { name: "tom", age: 29 },  
            { name: "test", age: 39 } 
          ];  

Quiero eliminar un elemento de matriz como este (un método de prototipo de matriz):

arr.remove("name", "test");  // remove by name  
arr.remove("age", "29");  // remove by age

Actualmente, lo hago por este método (usar jQuery):

Array.prototype.remove = function(name, value) {  
    array = this;  
    var rest = $.grep(this, function(item){    
        return (item[name] != value);    
    });  

    array.length = rest.length;  
    $.each(rest, function(n, obj) {  
        array[n] = obj;  
    });  
};  

pero creo que la solución tiene algún problema de rendimiento, ¿alguna buena idea?