2016-08-09 8 views
-2

私の配列は、この配列内の各オブジェクトに属性を追加する方法は?

"taxDetails": [ 
{ 
    "taxType": "Flat Service Charge", 
    "taxAmount": 0 
}, 
{ 
    "taxTypeId": "1", 
    "taxType": "Service Tax", 
    "validFrm": "2016-01-18", 
    "validTo": "2020-02-27", 
    "taxPrctgSbt": 200, 
    "taxPrctg": 14.5, 
    "taxAmount": 300, 
    "remarks": "test" 
}, 
{ 
    "taxTypeId": "2", 
    "taxType": "VAT", 
    "validFrm": "2016-01-18", 
    "validTo": "2020-02-29", 
    "taxPrctgSbt": 300, 
    "taxPrctg": 12.5, 
    "taxAmount": 400, 
    "remarks": "rest" 
}, 
{ 
    "taxTypeId": "3", 
    "taxType": "Swatch Bharath Cess", 
    "validFrm": "2016-01-18", 
    "validTo": "2020-03-31", 
    "taxPrctgSbt": 400, 
    "taxPrctg": 1, 
    "taxAmount": 500, 
    "remarks": "fest" 
}, 
{ 
    "taxTypeId": "5", 
    "taxType": "Swatch Bharath Cess", 
    "validFrm": "2016-01-18", 
    "validTo": "2020-03-31", 
    "taxPrctgSbt": 400, 
    "taxPrctg": 1, 
    "taxAmount": 500, 
    "remarks": "fest" 
}, 
{ 
    "taxTypeId": "6", 
    "taxType": "Percent Service Char", 
    "validFrm": "2016-01-18", 
    "validTo": "2020-08-01", 
    "taxPrctgSbt": 200, 
    "taxPrctg": 10, 
    "taxAmount": 200, 
    "remarks": "zest" 
}, 
{ 
    "taxTypeId": "7", 
    "taxType": "Percent Service Char", 
    "validFrm": "2016-01-18", 
    "validTo": "2020-08-01", 
    "taxPrctgSbt": 300, 
    "taxPrctg": 15, 
    "taxAmount": 200, 
    "remarks": "zest" 
} 
] 

のようなもので、私のコードは、私は要素のすべての配列内の別のオブジェクトを追加したい

$scope.paymentForm.taxDetails = []; 
//$scope.taxDetails = []; 
var flat= {"flat" : true}; 
$scope.taxList = function() { 
    $http.get('http://192.168.0.113:8080/feasthunt/registration/getTaxDetails?restUniqCode='+uniqueCode) 
    .success(function (response) { 

     $scope.paymentForm.taxDetails = response; 

     for(var i=0; i< $scope.paymentForm.taxDetails.length; i++){ 
      $scope.paymentForm.taxDetails[i].push(flat); 
       } 
    }) 
    .error(function (data, status, header, config) { 
     //alert('error'); 
    }); 
}; 
$scope.taxList(); 

です。最終結果は次のようになります

"taxDetails": [ 
{ 
    "taxType": "Flat Service Charge", 
    "taxAmount": 0, 
    "flat": true 
}, 
{ 
    "taxTypeId": "1", 
    "taxType": "Service Tax", 
    "validFrm": "2016-01-18", 
    "validTo": "2020-02-27", 
    "taxPrctgSbt": 200, 
    "taxPrctg": 14.5, 
    "taxAmount": 300, 
    "remarks": "test", 
    "flat": true 
}, 
{ 
    "taxTypeId": "2", 
    "taxType": "VAT", 
    "validFrm": "2016-01-18", 
    "validTo": "2020-02-29", 
    "taxPrctgSbt": 300, 
    "taxPrctg": 12.5, 
    "taxAmount": 400, 
    "remarks": "rest", 
    "flat": true 
}, 
{ 
    "taxTypeId": "3", 
    "taxType": "Swatch Bharath Cess", 
    "validFrm": "2016-01-18", 
    "validTo": "2020-03-31", 
    "taxPrctgSbt": 400, 
    "taxPrctg": 1, 
    "taxAmount": 500, 
    "remarks": "fest", 
    "flat": true 
}, 
{ 
    "taxTypeId": "5", 
    "taxType": "Swatch Bharath Cess", 
    "validFrm": "2016-01-18", 
    "validTo": "2020-03-31", 
    "taxPrctgSbt": 400, 
    "taxPrctg": 1, 
    "taxAmount": 500, 
    "remarks": "fest", 
    "flat": true 
}, 
{ 
    "taxTypeId": "6", 
    "taxType": "Percent Service Char", 
    "validFrm": "2016-01-18", 
    "validTo": "2020-08-01", 
    "taxPrctgSbt": 200, 
    "taxPrctg": 10, 
    "taxAmount": 200, 
    "remarks": "zest", 
    "flat": true 
}, 
{ 
    "taxTypeId": "7", 
    "taxType": "Percent Service Char", 
    "validFrm": "2016-01-18", 
    "validTo": "2020-08-01", 
    "taxPrctgSbt": 300, 
    "taxPrctg": 15, 
    "taxAmount": 200, 
    "remarks": "zest", 
    "flat": true 
} 
] 
+0

エラーがあれば表示されますか? – ManFox

答えて

1

は、設定したい:

for(var i=0; i< $scope.paymentForm.taxDetails.length; i++){ 
    $scope.paymentForm.taxDetails[i]["flat"] = true; //or what ever value you want 
} 

また、コードを短くするfor-inループを使用している可能性が各配列要素の属性flat = true。 次のコードが動作する可能性があります:

for(var i=0; i< $scope.paymentForm.taxDetails.length; i++){ 
    $scope.paymentForm.taxDetails[i].flat = true; 
} 
+0

ありがとうTorsten すごくうれしいよ ありがとう – ASHOK

0

新しいプロパティをオブジェクトのようにオブジェクトにプッシュしようとしています。代わりに、新しいプロパティを設定する必要があります。

変更:

for(var i=0; i< $scope.paymentForm.taxDetails.length; i++){ 
    $scope.paymentForm.taxDetails[i].push(flat); 
} 

へ:私は理解し

for(var i in $scope.paymentForm.taxDetails) 
    $scope.paymentForm.taxDetails[i]["flat"] = true; 
関連する問題