我想从 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"
}
}
如果
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]);
}
}
如果它们的长度不同,您需要指定有问题的逻辑。