2016-08-09 5 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

, как я понимаю, вы хотите установить атрибут 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); 
} 

To:

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

Вы также использовали for-in цикл, чтобы сократить код:

for(var i in $scope.paymentForm.taxDetails) 
    $scope.paymentForm.taxDetails[i]["flat"] = true; 
Смежные вопросы