【发布时间】:2016-05-30 06:41:38
【问题描述】:
HTML
<div ng-controller="MyCtrl">
this is 'a' array
<br>
<div ng-repeat ="element in a">
{{element.value}}
</div>
<br>
this is 'b' array
<br>
<div ng-repeat ="element in b">
{{element.value}}
</div>
<br>
this is final array
<br>
<div ng-repeat ="element in final_array">
{{element.value}}
</div>
</div>'
js 控制器
var myApp = angular.module('myApp', []);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
function MyCtrl($scope) {
$scope.a = [{
"id": 1,
"value": 10
}, {
"id": 2,
"value": 20
}]
$scope.b = [{
"id": 1,
"value": 20
}, {
"id": 3,
"value": 40
}]
var c = [];
c = $scope.a.concat($scope.b)
console.log(c)
$scope.final_array = [];
for (var i = 0; i < c.length; i++) {
if ($scope.final_array.length == 0) {
$scope.final_array.push(c[i]);
} else {
alert("hi")
for (var j = 0; j < $scope.final_array.length; j++) {
$scope.flag = 0;
if ($scope.final_array[j].id == c[i].id) {
$scope.final_array[j].value = parseFloat($scope.final_array[j].value) + parseFloat(c[i].value);
$scope.flag = 0;
break;
} else {
$scope.flag = 1;
}
}
if ($scope.flag == 1) {
$scope.final_array.push(c[i]);
}
}
}
console.log($scope.a)
console.log($scope.b)
console.log($scope.final_array)
}
我正在连接两个数组 a 和 b
如果键 id 的值相同,我会更新该值。
但是当我在合并数组$scope.final array 上更新时,它会更新数组的值。
这是小提琴JS Fiddle Demo
【问题讨论】:
标签: javascript html arrays angularjs