gpt4 book ai didi

javascript - 如何将数组作为参数传递给javascript中的函数?

转载 作者:行者123 更新时间:2023-11-30 07:39:38 25 4
gpt4 key购买 nike

我正在尝试制作辅助函数以使用 Google Analytics API,但我在构建字符串时遇到了一个简单的问题。场景是,我必须应用一个过滤器,并且可能有 n 个过滤器(名义上的数量,无论如何不超过 128 个)。我想编写一个函数,它可以接受 n 个字符串并将它们与中间的逗号分隔组合起来。

我不知道在 javascript 中参数的数量是否可以可变,以及它是否可以在 javascript 中将数组作为参数(我是 JS 的新手),但我看不出有什么区别,因为变量只是 var 并且在 JS 中任何地方都没有数据类型(我来自 C++/Java 背景,发现它确实令人困惑)。所以我尝试将一个数组作为参数传递给一个函数,这样就没有了。我可以处理的事情的数量可以是动态的,由数组中的元素决定。

当我开始寻找解决方案时,我遇到了 this page .在那之后我最近遇到了this thread这也引用相同的链接和他们提供的格式对我没有好处。

为了清楚起见,让我提供我编写的函数定义。

/**
* 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);
}

我是这样调用它的:

buildString.apply(this,[desc(visits),source])

其中 desc(visits)source 都是字符串,所以我假设我正在发送一个字符串数组。奇怪的是,apply() 调用 buildString 函数中的 thisnull 都给我“0,1”作为返回值。

请告诉我哪里错了。我是否以错误的方式传递数组?还是我的函数定义有误?或者是否有其他更简单的方法来实现我正在尝试的目标?

最佳答案

将数组传递给函数与传递任何其他类型没有区别:

var string = buildString([desc(visits), source]);

但是,您的函数不是必需的,因为 Javascript 有一个内置函数,用于连接带分隔符的数组元素:

var string = someArray.join(',');

关于javascript - 如何将数组作为参数传递给javascript中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20944124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com