如何将不同对象数组的值组合成一个数组

问题描述 投票:0回答:1

我想从 API 输出中捕获具有值

Unassigned
的参数
64314
。我的目标是在数组中捕获这些信息,例如
['Unassigned',64314]

我使用这个 for-in 循环来实现上述目的。

var data = obj.rows;

for(var item in data){

 console.log(data[item].dimensionValues);
 console.log(data[item].metricValues);

}


//Output
[{
  value: "Direct"
}]
[{
  value: 1405211
}]....

但我无法映射它来实现这一点

['Unassigned',64314]
。对我来说,似乎我必须进一步循环第二层

//API Output

var obj = {
   "metricHeaders":[
      {
         "name":"sessions",
         "type":"TYPE_INTEGER"
      }
   ],
   "dimensionHeaders":[
      {
         "name":"defaultChannelGroup"
      }
   ],
   "kind":"analyticsData#runReport",
   "rowCount":16.0,
   "rows":[
      {
         "metricValues":[
            {
               "value":789456
            }
         ],
         "dimensionValues":[
            {
               "value":"Direct"
            }
         ]
      },
      {
         "dimensionValues":[
            {
               "value":"Organic Search"
            }
         ],
         "metricValues":[
            {
               "value":7894521
            }
         ]
      },
      {
         "dimensionValues":[
            {
               "value":"Paid Search"
            }
         ],
         "metricValues":[
            {
               "value":789456
            }
         ]
      },
      {
         "dimensionValues":[
            {
               "value":"Cross-network"
            }
         ],
         "metricValues":[
            {
               "value":1254689
            }
         ]
      },
      {
         "dimensionValues":[
            {
               "value":"Email"
            }
         ],
         "metricValues":[
            {
               "value":97766
            }
         ]
      },
      {
         "metricValues":[
            {
               "value":53208
            }
         ],
         "dimensionValues":[
            {
               "value":"Paid Social"
            }
         ]
      },
      {
         "metricValues":[
            {
               "value":64314
            }
         ],
         "dimensionValues":[
            {
               "value":"Unassigned"
            }
         ]
      },
      {
         "metricValues":[
            {
               "value":30069
            }
         ],
         "dimensionValues":[
            {
               "value":"Referral"
            }
         ]
      },
      {
         "metricValues":[
            {
               "value":28790
            }
         ],
         "dimensionValues":[
            {
               "value":"Organic Social"
            }
         ]
      },
      {
         "dimensionValues":[
            {
               "value":"Paid Video"
            }
         ],
         "metricValues":[
            {
               "value":14840
            }
         ]
      },
      {
         "metricValues":[
            {
               "value":11619
            }
         ],
         "dimensionValues":[
            {
               "value":"Display"
            }
         ]
      },
      {
         "metricValues":[
            {
               "value":2165
            }
         ],
         "dimensionValues":[
            {
               "value":"Organic Video"
            }
         ]
      },
      {
         "metricValues":[
            {
               "value":806
            }
         ],
         "dimensionValues":[
            {
               "value":"Paid Other"
            }
         ]
      },
      {
         "dimensionValues":[
            {
               "value":"ABC"
            }
         ],
         "metricValues":[
            {
               "value":261
            }
         ]
      },
      {
         "dimensionValues":[
            {
               "value":"SMS"
            }
         ],
         "metricValues":[
            {
               "value":2
            }
         ]
      },
      {
         "dimensionValues":[
            {
               "value":"Organic Shopping"
            }
         ],
         "metricValues":[
            {
               "value":1
            }
         ]
      }
   ],
   "metadata":{
      "currencyCode":"USD",
      "timeZone":"XXXX"
   }
}


javascript google-apps-script google-analytics-api google-analytics-4
1个回答
0
投票

如果

dimentionaValues
metricValues
只有一项,那么您可以指定第一项并动态创建数组吗?

console.log([data[item].dimensionValues[0].value,data[item].metricValues[0].value]);

如果它们的长度相同,则需要另一个循环

for(var item in data){
  for(var i=0; i< data[item].dimensionValues.length;i++){
 console.log([data[item].dimensionValues[i].value,data[item].metricValues[i].value]);
  }
}

如果它们的长度不同,您需要指定有问题的逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.