gpt4 book ai didi

javascript - Lodash - 显示对象的更改属性

转载 作者:搜寻专家 更新时间:2023-10-30 21:16:37 25 4
gpt4 key购买 nike

我有一个比较功能,可以检查用户是否像这样更改了对象中的任何属性值。

private checkForChanges(): boolean {
if (_.isEqual(this.definitionDetails, this.originalDetails) === true) {
return false;
} else {
return true;
}
}

这很好用,但是现在我想 console.log changes 如果有任何更改,哪个属性会更改。

我已经试过了:

console.log(_.difference(_.keys(this.originalDetails), _.keys(this.definitionDetails)));

但我总是得到 [] 所以我假设我的语法是错误的。

实现我想要的目标的正确方法是什么?

最佳答案

如果值发生变化,_.isEqual 可能会返回 false,即使键保持不变,也会发生这种情况。

例如:{x: 11, y: 12} 和 {x: 11, y: 13} 将返回 false,尽管它们仍然具有相同的键。

您的_.difference() 比较键。

要获取更改的键,您需要实现自己的函数:

function changedKeys(o1, o2) {
var keys = _.union(_.keys(o1), _.keys(o2));
return _.filter(keys, function(key) {
return o1[key] !== o2[key];
});
}

关于javascript - Lodash - 显示对象的更改属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43804139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com