js对象验证并清洗多余字段

a是标准数据,b是待验证数据,需要做个验证,如果b数据有的字段a没就把b的该字段删除
参考深拷贝写法实现对象验证并清洗多余字段

 代码例子:

 

var a = { // 标准数据格式
    name: "tom",
    age: 18,
    sex: true,
    config: {
         80,
        background: "red",
        format: {
            qqq: [],
            fontFamily: "PingFang SC",
            color: "rgba(0, 0, 0, 1)",
            fontSize: "14px"
        }
    }
}
var b = { // 后台给的数据
    name: "anne",
    sex: false,
    config: {
         80,
        height: 100,
        background: "red",
        format: {
            qqq: [1,2,3],
            fontFamily: "PingFang SC",
            color: "rgba(0, 0, 0, 1)",
            fontSize: "14px"
        }
    }
}

/*  清洗数据多余字段,找出多余字段并删除
    object1: 标准数据
    object2: 待验证数据
*/
function dataClean(object1, object2){
    var obj1 = JSON.parse(JSON.stringify(object1))
    var obj2 = JSON.parse(JSON.stringify(object2))
    function recursive(obj1, obj2) {
        for (var key in obj2) {
            var item1 = obj1[key];
            var item2 = obj2[key];
            if (item1 === undefined && item2) {
                delete obj2[key]
            } else if (typeof item1 === "object" && !(item1 instanceof Array) && typeof item2 === "object") {
                recursive(item1, item2)
            }
        }
    }
    recursive(obj1, obj2)
    return obj2
}
var c = dataClean(a, b)
console.log("标准数据", a, "验证数据", b, "最终结果", c);
原文地址:https://www.cnblogs.com/konghaowei/p/15206417.html