我正在尝试将类似的对象推送到数组中,并且在每个对象中我都在推送一些值,但更新的值会反映在所有对象中。我想只将foo数组中的三个值添加到第一个对象中,而在第二个对象的foo中添加另外三个值,但在这两个对象中,所有六个值都会出现。
<!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 :(得分: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++;
}
}