Javascript:将数据推送到for循环内的数组对象

时间:2016-10-03 03:49:12

标签: javascript loops

例如,我的对象如下所示。

我已经推了这些

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

我尝试使用for循环来防止重复

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

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

但它看起来并不像我正确的做法,我该如何纠正呢?

P.S考虑这些数组看起来像var sovId = [1,56,23]

1 个答案:

答案 0 :(得分:2)

您的代码仅多次定义test3way变量,并且每次循环迭代时都具有不同的属性值。你可以尝试阵列推送。

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

另外在旁注中,您应该将let i而不是var i写为for循环迭代器,以便范围仅在循环内。

相关问题