【发布时间】:2020-04-02 10:40:52
【问题描述】:
我有 2 个对象,我想将旧对象与新对象进行比较,如果对象的值不同,则返回新对象。我尝试了多种解决方案,似乎我无法做到这一点。 这是我尝试过的
var new_pkg ={scooter_id:"TM0060",lat:"45.747646",lng:"21.231496",alt:"99.200"};
var old_pkg={scooter_id:"TM0060",lat:"25.747746",lng:"31.221496",alt:"100.200"};
function difference(new_pkg, old_pkg) {
function changes(new_pkg, old_pkg) {
return _.transform(new_pkg, function(result, value, key) {
if (!_.isEqual(value, old_pkg[key])) {
result[key] = (_.isObject(value) && _.isObject(old_pkg[key])) ? changes(value, old_pkg[key]) : value;
}
});
}
return changes(new_pkg, old_pkg);
}
我要回{lat:"45.747646",lng:"21.231496",alt:"99.200"};
【问题讨论】:
-
如果您想使用内置库比较两个对象,您可以联系 use
npm install deep-diff。 npmjs.com/package/deep-diff
标签: javascript arrays node.js json javascript-objects