js比较对象属性是否发生变化的最简便写法

需求背景:

要求在离开页面时需要判断页面的数据是否有做过改动,由于页面的数据是表单对象的形式,所以只需要判断对象的属性值是否有发生过变化就行

 

解决方案:

查找资料发现比较简单的写法就是通过JSON.stringify转换成字符串进行对比

 

上代码案例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const x = {
    a: 1,
    b: 2,
    c: {
        k: 'test'
    },
    d:[1,2,3,5]
};
  
// 备份一份原数据y
const y = JSON.stringify(x)
 
// 修改x数据
x.a = 3
 
// 判断数据是否有变动
 if (isChange(x, y)) {
       console.log('数据未修改');
   } else {
      console.log('数据有变动');
  }
  
// 数据是否有变化的方法封装
function isChange(x, y) {
    return JSON.stringify(x) === y
}

  

注:也能用该方法判断两个对象是否完全相等

 

参考资料:
vue 判断表单值是否改变

 

posted @   applesky  阅读(2106)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示