无法反转Javascript简单的差异

时间:2017-11-09 22:02:00

标签: javascript

我使用_在javascript中做一个简单的差异。在有人更改文本字段之前,我有两个相同的对象,然后是旧对象和新对象。 (我试图创建一个审核日志来跟踪任何已更改的字段)。

到目前为止,这是我的代码。

var o1 = $scope.historicSite,
    o2 = $scope.newsite;

var old_value = _.omit(o1, function(v, k) {
    return o2[k] === v;
});

console.log("old value :", old_value);

这工作正常,例如,如果我只更改"网站名称"我回来的领域

{site_name: "Old Value"}

来自该功能。

我需要同时获取旧值(我得到的)和新值,以便我可以存储它们,我尝试翻转o1和o2变量,但它只返回整个对象!是否可以扭转这种局面,这样我就可以获得新的价值?

谢谢

1 个答案:

答案 0 :(得分:3)

您可以从'diff'中取出键并从新值中创建一个对象:

类似的东西:

const new_values = Object.keys(old_value).reduce((accumulator, key) => {
    accumulator[key] = o2[key];
    return accumulator;
}, {})