我有一个可能包含对象的数组。对象可以添加到它中或修改属性。我想检查数组是否发生了任何变化(可能是添加了元素或仅仅是一个对象有一个键值被修改),然后根据潜在的变化更新数据库。
只是想知道我的方法是否能涵盖所有情况,或者有没有更好的方法。
const origArrayCopy = JSON.stringify(origArray);
someFnThatPotentiallyChanges(origArray);
if (origArrayCopy !== JSON.stringify(origArray)) {
updateDB(arr);
} else {
console.log('NO DIFF');
}
以下是我创建的 jsFiddle 测试链接 https://jsfiddle.net/j4eqwmp6/
使用 stringify 将对象转成字符串应该可以处理嵌套深度变化,对此有什么见解?还有更好的实现方式吗?
JSON.stringify()
可能会展示出有变化,即使实际上没有改变,因为元素的顺序发生了变化。 - BarmarJSON.stringify
应该是可以胜任的。 - kaya3{"foo": 1, "bar": 2}
和{"bar": 2, "foo": 1}
是不同的 JSON,但是它们表示相同的对象。 - Barmar