您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

用AngularJS深度合并对象

用AngularJS深度合并对象

用途angular.merge

不同于extend()merge()递归地进入源对象的对象属性,执行深层复制。

angular.merge(object1, object2); // merge object 2 into object 1

没有理由不应该使用简单的递归算法:)

假设它们都是JSON.stringify或类似结果:

function merge(obj1,obj2){ // Our merge function
    var result = {}; // return result
    for(var i in obj1){      // for every property in obj1 
        if((i in obj2) && (typeof obj1[i] === "object") && (i !== null)){
            result[i] = merge(obj1[i],obj2[i]); // if it's an object, merge   
        }else{
           result[i] = obj1[i]; // add it to result
        }
    }
    for(i in obj2){ // add the remaining properties from object 2
        if(i in result){ //conflict
            continue;
        }
        result[i] = obj2[i];
    }
    return result;
}
其他 2022/1/1 18:15:36 有647人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶