我很想将多个项目推送到_gaq.push()进行谷歌分析。
我有一个Ids数组,我循环创建数组传递给.push();
var gaDetails = new Array();
var productIdsArray = productIds.split(",");
for(var i = 0; i < productIdsArray.length; ++i)
gaDetails.push(['_trackEvent', 'Quote', '' + step, '' + productIdsArray[i]]);
_gaq.push(gaDetails);
看起来每个数组周围都有一组额外的[]。也许我没有看到一些东西,但谷歌描述他们的语法看起来错了吗?
答案 0 :(得分:3)
你不需要另一个阵列,当你在它时,你也可以使用更快的循环。
var productIdsArray = productIds.split(","),
i = productIdsArray.length;
while(i--)
{
_gaq.push(['_trackEvent', 'Quote', '' + step, '' + productIdsArray[i]]);
}
答案 1 :(得分:0)
正如Ryan的评论所述,谷歌鼓励通过一次调用_gaq.push推送多个命令
如果有一个命令数组并希望将它们全部添加到_gaq,则可以通过
实现_gaq.push.apply(_gaq, gaDetails);
从Javascript push array values into another array
获得线索对于性能来说,用每个元素调用_gaq.push可能很好。