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 判断表单值是否改变
分类:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端