我正在尝试使用辅助函数来利用Google Analytics(分析)API,并且在构建字符串时遇到了一个简单的问题。场景是,我必须应用一个过滤器,并且可能有n个过滤器(名义数量,无论如何不超过128个)。我想编写一个函数,该函数可以接收n个字符串,并将它们与之间的逗号分隔组合。
我不知道参数的数量在javascript中是否可以是变量,以及它是否可以将数组作为javascript中的参数(我是JS的新手),但是我看不出有什么区别,因为变量很简单var并且任何地方都没有数据类型在JS中使用(我来自C ++ / Java背景,发现它确实令人困惑)。因此,我尝试将数组作为参数传递给函数,以使否。我可以处理的事情可以是动态的,由数组中的元素决定。
当我开始寻找解决方案时,我碰到了这个页面。之后,我最近遇到了这个线程,该线程还引用了相同的链接,他们提供的格式对我没有好处。
为了清楚起见,让我提供我编写的函数定义。
/**
* Utility method to build a comma-ed string from an array of strings
* for the multiple-condition requests to the GA API
*/
function buildString(strArray)
{
var returnString='';
for(var x in strArray)
returnString+=x+',';
return returnString = returnString.substring(0, returnString.length - 1);
}
Run Code Online (Sandbox Code Playgroud)
这就是我所说的:
buildString.apply(this,[desc(visits),source])
Run Code Online (Sandbox Code Playgroud)
其中desc(visits)和source都是字符串,所以我假设我要发送一个字符串数组。奇怪的是this,null在apply()调用buildString函数时,都给了我“ 0,1”作为返回值。
请告诉我我要去哪里了。我是否以错误的方式传递了数组?还是我的函数定义错误?还是有其他更简单的方法来实现我正在尝试的功能?