如何使用angularjs或简单的javascript合并两个对象?

时间:2015-10-30 06:43:09

标签: javascript angularjs

我有两个对象

$scope.a= {"Sedan":{"Audi":["A3","A4"]},"Hatchback":{"Maruthi":["Swift"]}}; 
var b= {"Hatchback":{"Volkswagen":["Polo"],"Fiat":["Punto1"]}};

合并后我需要以下结果

{"Sedan":{"Audi":["A3","A4"]},"Hatchback":{"Maruthi":["Swift"],"Volkswagen":["Polo"],"Fiat":["Punto1"]}};

4 个答案:

答案 0 :(得分:3)

你可以这样做..

$scope.a= {"Sedan":{"Audi":["A3","A4"]},"Hatchback":{"Maruthi":["Swift"]}}; 
var b= {"Hatchback":{"Volkswagen":["Polo"],"Fiat":["Punto1"]}};

 var mergedobj= angular.merge($scope.a, b); //merge object b into $scope.a

请看这里的plunkr工作 http://plnkr.co/edit/VpHwERUmLqx6MlwQj6JB?p=preview

答案 1 :(得分:1)

使用angular.merge

  $scope.object = angular.merge($scope.a, b)

答案 2 :(得分:0)

尝试以下代码段

$scope.extend(obj, src) {
    for (var key in src) {
       if (src.hasOwnProperty(key)) obj[key] = src[key];
    }
    return obj;
}

合并对象

$scope.extend($scope.a, b); 

或者您可以使用直接jQuery函数。请确保您应该在角度最小值之前加载jquery min。在DOM上加载jquery min之后,请在jQuery函数下面调用

var newObj = $.extend(true, $scope.a, b); 

答案 3 :(得分:-1)

如果您需要新对象,请尝试以下方法:

 var c = {};
 angular.extend(c, $scope.a, b);

或者你可以这样做:

 angular.extend($scope.a, b);

$scope.a将包含合并后的结果。