js 检索两个字典对象不同的数据(form表单更改前后对比,以保证请求数据减少)

export function isObjectValueEqual(a, b) {
    //取对象a和b的属性名 ,第一个值为你需要上传的值,第二个值为旧数据
    //遍历筛选出名称和值,然后返回数据
    var aProps = Object.getOwnPropertyNames(a).map(function(
        val,
        idx,
        array
    ) {

        if (val == "__ob__") {
            return [];
        } else {
            var c = [val, a[val]];
            return c;
        }
    });

    var bProps = Object.getOwnPropertyNames(b).map(function(
        val,
        idx,
        array
    ) {
        if (val == "__ob__") {
            return [];
        } else {
            var c = [val, b[val]];
            return c;
        }
    });

    aProps.forEach((item, index) => {
        console.log(item);
        if (item == "") {
            aProps.splice(index, 1);
        }
    });
    bProps.forEach((item, index) => {
        console.log(item);
        if (item == "") {
            bProps.splice(index, 1);
        }
    });

    //对上面进行删除

    // console.log(aProps);
    // console.log(bProps);
    // //判断属性名的length是否一致 
    // if (aProps.length != bProps.length) {
    //     return false;
    // }
    //循环取出属性名,再判断属性值是否一致
    // console.log(aProps.length);
    var list = {};
    for (var i = 0; i < aProps.length; i++) {
        // console.log(111);
        // var propName = aProps[i];
        // console.log(propName);

        if (aProps[i][1] !== bProps[i][1]) {
            // console.log(i);
            // console.log(aProps[i]);
            var d = aProps[i][0];
            list[d] = aProps[i][1];
        }
    }
    return list;
    // return true;
};

放在独立js文件夹中,其他调用该函数即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值