我使用_在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变量,但它只返回整个对象!是否可以扭转这种局面,这样我就可以获得新的价值?
谢谢
答案 0 :(得分:3)
您可以从'diff'中取出键并从新值中创建一个对象:
类似的东西:
const new_values = Object.keys(old_value).reduce((accumulator, key) => {
accumulator[key] = o2[key];
return accumulator;
}, {})