2016-05-04 5 views
2

コードの一部をハードコードしています。私は他のオブジェクトを保持するdetailData配列を持っています。Javascriptまたは角jsのオブジェクトの配列

var detailData = []; 

    detailData[0] = { 
     "Detail1": null, "Detail2": null, "Detail3": null, "Detail4": null, "Detail5": null, 
     "RequestTrackingId1": null, "RequestTrackingId2": null, "RequestTrackingId3": null, "RequestTrackingId4": null, 
     "RequestTrackingId5": null, "header": "Request Tracking Id" 
    } 

    detailData[1] = { 
     "Detail1": null, "Detail2": null, "Detail3": null, "Detail4": null, "Detail5": null, 
     "RequestTrackingId1": null, "RequestTrackingId2": null, "RequestTrackingId3": null, "RequestTrackingId4": null, 
     "RequestTrackingId5": null, "header": "Source System Code" 
    } 

    detailData[2] = { 
     "Detail1": null, "Detail2": null, "Detail3": null, "Detail4": null, "Detail5": null, 
     "RequestTrackingId1": null, "RequestTrackingId2": null, "RequestTrackingId3": null, "RequestTrackingId4": null, 
     "RequestTrackingId5": null, "header": "Source System UId" 
    } 

したがって、すべてのdetailDataオブジェクトにはdetail1、detail2、detail3などがあります。

今、他の配列から、私はそれらを割り当てるには、のような値:

 for (var i = 0; i < $scope.arc_srcsys_cds.length; i++) { 
      var detailIndex = "Detail" + (i + 1); 
      detailData[1].detailIndex = $scope.arc_srcsys_cds[i]; 
     } 

しかし、それはそうでdetail1,detail2に値を代入していません。むしろdetailIndexという別のフィールドを作成しています。

希望する結果を得るにはどうすればよいですか?

+0

'detailDataは、[1] [detailIndex] = $ scope.arc_srcsys_cds [i]の;'あなたは角括弧表記を使用する必要があります動的なキーアクセスが可能です。 –

答えて

3

あなたはこれを試すことができます:

detailData[i][detailIndex] = $scope.arc_srcsys_cds[i]; 
// detailData[1] will only replace or second array not for all 
2

をしてみてください:

for (var i = 0; i < $scope.arc_srcsys_cds.length; i++) { 
     var detailIndex = "Detail" + (i + 1); 
     detailData[i][detailIndex] = $scope.arc_srcsys_cds[i]; 
    } 
関連する問題