Решение RaYell - это хорошо, но, к сожалению, он сообщит вам только те элементы в obj2, которые отличаются или не существуют в obj1, если нам нужно узнать обе стороны, давайте получим все ключи и затем сравним. Следующая функция вернет ассоциативный массив со значениями ключей для каждого объекта. Ох ... если честно, я еще не проверял, но это должно сработать.
var diff = function(obj1,obj2) {
var newObj = $.extend({},obj1,obj2);
var result = {};
$.each(newObj, function (key, value) {
if (!obj2.hasOwnProperty(key) || !obj1.hasOwnProperty(key) || obj2[key] !== obj1[key]) {
result[key] = [obj1[key],obj2[key]];
}
});
return result;
}
О, и хотя я признаю, что первое решение ответило на первоначальный вопрос, я думаю, что вышеупомянутое решение предлагает другой подход, который первоначальный пользователь может найти полезным, чтобы не требовать проверки дважды.