zoukankan      html  css  js  c++  java
  • 验证数据是否被改动

    有时候保存数据需要做个验证数据是否被改变过,就用到以下的工具函数

     代码例子:

    /*  验证数据是否被改动
        参数:object1: 标准数据     object2: 待验证数据
        返回结果:Boolean   true已改 false未改
    */
    function validationDataChange(object1, object2) {
        var isChange = false;
        var obj1 = JSON.parse(JSON.stringify(object1))
        var obj2 = JSON.parse(JSON.stringify(object2))
        function recursive(obj1, obj2) {
            for (var key in obj1) {
                var item1 = obj1[key];
                var item2 = obj2[key];
                if ((item1 instanceof Array) && (item2 instanceof Array)) {
                    if (item1.length !== item2.length) {
                        isChange = true
                        return
                    }
                    recursive(item1, item2)
                } else if (typeof item1 !== "object" && item2 === undefined) {
                    isChange = true
                } else if (typeof item1 === "object" && item2 === undefined) {
                    isChange = true
                } else if (typeof item1 === "object" && typeof item2 === "object") {
                    recursive(item1, item2)
                } else if (item1 === undefined && item2) {
                    isChange = true
                } else if (item1 !== item2) {
                    isChange = true
                }
            }
        }
        recursive(obj1, obj2)
        return isChange
    }
    
    var a = { // 标准数据格式
        name: "tom",
        age: 18,
        sex: true,
        config: {
             80,
            background: "red",
            format: {
                fontFamily: "PingFang SC",
                color: "rgba(0, 0, 0, 1)",
                fontSize: "14px"
            }
        }
    }
    var b = { // 待验证数据
        name: "tom",
        age: 19, // 这里改变了
        sex: true,
        config: {
             80,
            background: "red",
            format: {
                fontFamily: "PingFang SC",
                color: "rgba(0, 0, 0, 1)",
                fontSize: "14px"
            }
        }
    }
    
    var c = validationDataChange(a, b)
    console.log(c);
  • 相关阅读:
    词法定界
    Lua 多维表的遍历中的赋值
    mac虚拟机parallels 无法启动 "Windows 7" 虚拟机
    MAC下Android的Eclipse开发环境的搭建
    Lua 的函数库 01
    mac 安装lua并配置Subline Text2 的lua开发环境
    Sublime Text2 注册码 汉化 配置lua开发环境
    js 月历 时间函数 月份第一天 星期的判断
    android 判断app是否处于前台
    android 更新下载apk
  • 原文地址:https://www.cnblogs.com/konghaowei/p/15152659.html
Copyright © 2011-2022 走看看