javascript - 如何合并对象?

标签 javascript angularjs merge javascript-objects extends

例如,从这两个对象:

var object1 = {
  "color": "yellow",
  "size": null,
  "age": 7,
  "weight": null
}

var object2 = {
  "color": "blue",
  "size": 51,
  "age": null
}

我想要这个(object2 覆盖 object1 除了 null 属性或他没有的属性):

{
  "color": "blue",
  "size": 51,
  "age": 7,
  "weight": null
}

最佳答案

Copy

var src = { name: 'Apple', price: 5};
var dst= angular.copy(src);
  • 深拷贝

Extend :

var mergedObject = angular.extend(dst, src1, src2, ...) 
  • 浅拷贝

Merge :

var mergedObject = angular.merge(dst, src);
  • 从 angular 1.4+ 开始
  • 深度(递归)复制

如果不想被null覆盖,可以使用this .


Object.assign() :

let movie2 = Object.assign({}, movie1, { episode: 8 });
  • 适用于 Angular 2+ (ECMAScript 6)

来源:

关于javascript - 如何合并对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28473574/

相关文章:

javascript - Angularjs 对点击进行过滤

javascript - AngularJs:两个嵌套的子状态但不同的 View

javascript - AngularJS - 日期范围选择器 - ng 模型被覆盖

javascript - 仅合并重复出现的重复对象

merge - 如何合并两个表并覆盖两个表中的元素?

r - 如何根据一个数据帧中的列的值和R中另一个数据帧的列标题名称有条件地创建新列

javascript - 如何在 typed.js 中使用 `onComplete()` 方法?

javascript - Angular 2删除输入中的真/假值

javascript - 香蕉 Sprite js用json数据定制前后动画

angularjs - AngularJs中两个不同模块的 Controller 之间如何通信