gpt4 book ai didi

Javascript + AngularJS - 比较 JSON

转载 作者:行者123 更新时间:2023-12-03 02:11:29 25 4
gpt4 key购买 nike

我有一个页面,其中有(明确定义的)多个输入,用户可以在其中输入数据(即文本框、选择等)。

每当用户填写数据并单击“保存”按钮时,在实际的“保存”过程开始之前都需要进行许多操作和检查。

现在(这是问题),每当用户单击“X”按钮关闭页面时,我想检查数据库是否发生了变化(如果是,则提示确认)。

我生成两个带有完整输入列表的对象:

  1. 初始值对象在呈现给用户之前保存整个值列表 (@scope.Base_Object),并且

  2. 使用 ng-model (@scope.Work_Object) 映射到输入的整个输入列表。

注意:两个对象显示相同的结构,无法更改(即没有添加/删除元素)。

所以,我希望将 JSON.stringify(@scope.Base_Object)JSON.stringify(@scope.Work_Object) 进行比较应该告诉我是否有任何更改.

这个方法足够可靠吗?

最佳答案

Is this method reliable enough?

仅当创建对象的方式可靠地将属性以相同的顺序添加到对象时(或者您在对象上定义自己的 toJSON)。 JSON.stringify如下the property order这是在 ES2015 中定义的,它对属性创建的顺序敏感,因此两个等效对象可以具有不同的 JSON 表示形式,因为属性顺序可能不同:

var o1 = {a: 1, b: 2}; // Adds `a` before `b`
var o2 = {b: 2, a: 1}; // Adds `b` before `a`
var json1 = JSON.stringify(o1);
var json2 = JSON.stringify(o2);
console.log(json1);
console.log(json2);
console.log(json1 === json2); // false

“深度”等于检查很容易完成并且更可靠。有several questions and answers showing how to do that ,如this one .

关于Javascript + AngularJS - 比较 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49548569/

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