functionfoundry
Version:
Pure function JavaScript library
35 lines (32 loc) • 800 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = diff;
// Copyright 2015 JC Fisher
function diff(a, b) {
var keysA = Object.keys(a),
keysB = Object.keys(b),
InA = keysB.filter(function (n) {
return keysA.indexOf(n) > -1;
}),
NotInA = keysB.filter(function (n) {
return keysA.indexOf(n) === -1;
}),
NotInB = keysA.filter(function (n) {
return keysB.indexOf(n) === -1;
}),
Diff = InA.filter(function (n) {
return a[n] !== b[n];
});
return {
unique_left: NotInA,
unique_right: NotInB,
diff: Diff.reduce(function (x, y) {
var diff = {};
diff[y] = { left: a[y], right: b[y] };
return Object.assign({}, x, diff);
}, {})
};
}
module.exports = exports["default"];