Convert a JS DataTable to an array of objects An API provides data as some sort of data table, column and rows.

I have written a function to get JS Objects from this DataTable.

function processAggregateData(data) {
    dataRows = data.data[0].rows
    var returnArray = [];
    for (var i = 0; i &lt; dataRows.length; ++i){
        returnArray.push({
            index: dataRows[i].fld[0].v,
            average: dataRows[i].fld[1].v,
            min: dataRows[i].fld[2].v,
            max: dataRows[i].fld[3].v,
            sum: dataRows[i].fld[4].v,
            target: dataRows[i].fld[5].v,
            LLL: dataRows[i].fld[6].v,
            LL: dataRows[i].fld[7].v,
            L: dataRows[i].fld[8].v,
            H: dataRows[i].fld[9].v,
            HH: dataRows[i].fld[10].v,
            HHH: dataRows[i].fld[11].v,
            status: dataRows[i].fld[12].v
        })
    }
    return returnArray;
}


I would like to improve it, in particular:


There is a lot of 'magic constants', mapping a column number to an object property. I have tried to extract them, but have not found a way to do it without doubling the size of the function. Is that suitable here?
Of course, any improvement of the code is most welcome.


A note, to end, there is users on IE, so ECMA6 is not possible.

Thank you for your review :)
There isn't really much you can do unless you know the objects property name. I refactored the properties into an array, so you just can iterate through them as they are reused so many times.    

function processAggregateData(data) {
    var dataProperties = ['index', 'average', 'min', 
                          'max', 'sum', 'target', 
                          'LLL', 'LL', 'L', 
                          'H', 'HH', 'HHH', 
                          'status'];
    dataRows = data.data[0].rows;
    var returnArray = [];
    for (var i = 0; i &lt; dataRows.length; ++i){
        var dataObject = {};
        for(var j=0;j&lt;dataPoperties.length;j++){
          dataObject[dataProperties[j]] = dataRows[i].fld[j].v;
        }
        returnArray.push(dataObject);
    }
    return returnArray;
}


As you can see there are no longer any magic constants.

NOTE: EcmaScript 6 is possible, you just need to transpile it into EcmaScript 5