Here's a method that checks that all key/values in the objects match.
// creates a hash for each object
// e.g. "name|one|psno|34"
function hash(obj) {
return Object.keys(obj).reduce(function(p, c) {
return p.concat([c, obj[c]].join('|'));
}, []).sort().join('|');
}
// returns a hashed object
function hashObject(obj) {
return hash(obj);
}
// returns a function that checks to see
// if an element is in the array
function within(arr) {
return function (el) {
return arr.indexOf(el) > -1;
}
}
// performs the check
function check(arr1, arr2) {
if (arr1.length < arr2.length) return false;
var hashedArr1 = arr1.map(hashObject);
return arr2.map(hashObject).every(within(hashedArr1));
}
var issubset = check(arr1, arr2);
DEMO