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);