2

I am hard coding some portions of code . I have a detailData array that holds other objects.

    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"
    }

So every detailData object will have detail1,detail2,detail3,and so on.

Now from an other array I want to assign them values like :

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

But it is not assigning values to detail1,detail2 and so on. Rather it is creating another field called detailIndex.

How can I achieve the desired result ?

StrugglingCoder
  • 4,781
  • 16
  • 69
  • 103
  • `detailData[1][detailIndex] = $scope.arc_srcsys_cds[i];` You need to use square bracket notation which allows for dynamic key access. – Mark Walters May 04 '16 at 07:52

2 Answers2

3

Can you try this:

detailData[i][detailIndex] = $scope.arc_srcsys_cds[i];
// detailData[1] will only replace or second array not for all
Sergio Tulentsev
  • 226,338
  • 43
  • 373
  • 367
a.u.b
  • 1,589
  • 10
  • 25
2

try with:

    for (var i = 0; i < $scope.arc_srcsys_cds.length; i++) {
        var detailIndex = "Detail" + (i + 1);
        detailData[i][detailIndex] = $scope.arc_srcsys_cds[i];
    }
Tudor Constantin
  • 26,330
  • 7
  • 49
  • 72