-1

For example I have an object looks like below.

I am push these already

for(var i = 0; i < result.length ; i++){
                        engagaement.push(result[i].engagement);
                        engagementPercentage.push(result[i].engagementPercentage);
                        name.push(result[i].name);
                        sovId.push(result[i].sovId);
                        volume.push(result[i].volume);
                        volumePercentage.push(result[i].volumePercentage);
                    }



var test3way = [
                    {y: engagementPercentage[0], numData : engagaement[0], id: sovId[0]},
                    {y: engagementPercentage[1], numData : engagaement[1], id: sovId[1]},
                    {y: engagementPercentage[2], numData : engagaement[2], id: sovId[2]},
                    {y: engagementPercentage[3], numData : engagaement[3], id: sovId[3]},
                    {y: engagementPercentage[4], numData : engagaement[4], id: sovId[4]}
               ]

And i tried to use for loop to prevent duplicate

    for(var i = 0; i < engagementPercentage.length ; i++){

        var test3way = [
            {
             y: engagementPercentage[i],
             numData : engagaement[i],
             id: sovId[i]
            },
        ]               
    }

But it doesn't looks like i am doing in right apporch, how should i correct it?

P.S Consider those arrays are look like var sovId = [1,56,23]

Rax Weber
  • 3,730
  • 19
  • 30
Anson Aştepta
  • 1,125
  • 2
  • 14
  • 38

1 Answers1

3

Your code only defines test3way variable multiple times and having different property values each iteration of the loop. You can try array pushing.

var test3way = [];
for (let i = 0; i < engagementPercentage.length ; i++) {
    test3way.push({
         y: engagementPercentage[i],
         numData : engagement[i],
         id: sovId[i]
    }); 
}

Also on a side note, you should write let i instead of var i as the for loop iterator so that the scope is only within the loop.

Rax Weber
  • 3,730
  • 19
  • 30