使用lodash深度对比/比较/对比出2个对象之间的差异

原创在这里
https://gist.github.com/Yimiprod/7ee176597fef230d1451

由于一些你知道的原因gist在国内经常无法访问,我搬运下源码

/**
 * Deep diff between two object, using lodash
 * @param  {Object} object Object compared
 * @param  {Object} base   Object to compare with
 * @return {Object}        Return a new object who represent the diff
 */
function difference(object, base) {
    function changes(object, base) {
        return _.transform(object, function(result, value, key) {
            if (!_.isEqual(value, base[key])) {
                result[key] = (_.isObject(value) && _.isObject(base[key])) ? changes(value, base[key]) : value;
            }
        });
    }
    return changes(object, base);
}

ex:

var a = {name:89757,date:{year:2017}}
var b = {name:89757,date:{year:2017,month:3}}

difference(a,b)
//{date:{month:3}}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,062评论 25 709
  • 我们总是希望他没过的那么好,或许自己会为现在的状况刚到平衡点,人性总有阴暗面,他过的好与不好都与你的生活无关,你只...
    咿呀学步的树懒阅读 244评论 0 0
  • 我喜欢你那层叠山峦 我喜欢你那山路弯弯 每个吐绿的枝头 苏醒了希冀的梦 看一山新绿萌动 结一场杏花缘 落一笺桃花红...
    一树丁香阅读 332评论 1 4
  • 春江绿涨载阳波,远近红鱼水皮梭。 黄丝细柳小帘风,隔将看取无尽多。
    米速阅读 272评论 1 2

友情链接更多精彩内容