еще вариант
Object.prototype.has = function( obj ) {
return Object.keys( obj ).every( function( key ) {
if ( this[ key ] === obj[ key ] ) return true;
}, this );
};
var obj = [
{ id: 1, group: 1, dat: 5 },
{ id: 2, group: 1, dat: 4 },
{ id: 3, group: 2, dat: 2 },
{ id: 4, group: 2, dat: 6 },
{ id: 5, group: 3, dat: 4 },
{ id: 6, group: 1, dat: 5 },
];
// -----------------------------
alert( JSON.stringify( foo( obj, { group: 1, dat: 5 }) ));
alert( JSON.stringify( foo( obj, { group: 2 }) ));
alert( JSON.stringify( foo( obj, { id: 5 }) ));
alert( JSON.stringify( foo( obj, { dat: 4 }) ));
// -----------------------------
function foo( arr, criteria ) {
return arr.filter( function( obj ) {
if ( obj.has( criteria ) ) return true;
});
}