2016-11-25 86 views
-1

我试图将类似的对象推入数组中,并在每个对象中推送一些值,但更新的值反映在所有对象中。我只想将foo数组中的三个值添加到第二个对象的第一个对象和其他3个对象中,但是在这两个对象中,所有六个值都出现了。动态添加类似对象

<!DOCTYPE html> 
<html ng-app="myApp" ng-controller='myCtrl'> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
<script> 
myapp=angular.module('myApp',[]).controller('myCtrl',function($scope){ 
    $scope.inp=[]; 
    var a={foo:[]}; 
    var barcode='one_two_three_four_five_six'; 
    var arr=barcode.split('_'),k=-1; 
    for(i=0; i < arr.length; i++){ 
     if(i%3 == 0){ 
      $scope.inp.push(a); 
      k++;} 
    $scope.inp[k].foo.push(arr[i]); 
    } 
}); 
</script> 
<body> 
<div ng-repeat='x in inp track by $index'>{{(x)}}</div> 
</body> 
</html> 

回答

0

有一个临时数组变量来保存3个值和推该值到foo阵列

var temp=[]; 
for(i=0;i<arr.length;i++){ 
    temp[i%3]=arr[i]; 
    if((i+1)%3==0){ 
     foo.push(temp); 
     temp=[]; 
     k++; 
    } 
}