2016-11-25 3 views
-1

Ich versuche, ähnliche Objekte in ein Array zu schieben, und in jedem Objekt dränge ich einige Werte, aber die aktualisierten Werte spiegeln sich in allen Objekten wider. Ich möchte nur drei Werte aus dem foo-Array in das erste Objekt und andere 3 in foo des zweiten Objekts hinzufügen, aber in beiden Objekten erscheinen alle sechs Werte.Ähnliche Objekte dynamisch hinzufügen

<!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> 

Antwort

0

ist ein temporäres Array-Variable der 3 Werte zu halten, und diesen Wert schieben Array

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