如何使用来自字符串变量的参数调用java-script函数

时间:2016-04-14 12:48:48

标签: javascript jquery

我的javascript有超过12个函数,所有函数都调用以下函数。

address_bar(gender, age_min, age_max, religion, country, address, zip-code, telephone);

我的问题是可以按如下方式调用此函数。

var string =  'gender, age_min, age_max, religion, country, address, zip-code, telephone';

将每个功能调用为

address_bar(string); //not working

我得到参数的未定义变量错误。

4 个答案:

答案 0 :(得分:1)

您可以通过逗号将字符串拆分为数组,然后通过apply将结果参数传递给函数,但有一点需要注意:所有参数都是字符串,所以如果需要区分的话在数字和字符串之间,还有另一个循环并根据您期望的任何类型解析结果的步骤。您还必须小心确保所有预期值都没有逗号,否则您将过早地分割结果。

以下是最基本案例的示例:

address_bar.apply(null, string.split(','));

答案 1 :(得分:1)

另一种方法是将它们放在像

这样的数组中
SELECT
  PID,
  SUM(CLICKS) as CLICKS,
  SUM(VIEWS) as VIEWS
FROM States
GROUP BY PID

答案 2 :(得分:0)

如果没有修改功能,你不能将它们作为一个字符串传递,你至少有3个选项。

1)将你的功能改为接受一个字符串:

function adress_bar(string){
    //split string and do soemthign with data;
}

adress_bar(string);

2)更改/拆分您尝试的数据" push"进入如下功能:

var gender = 'gender', age_min = "age_min", ... , telephone = "telephone";

然后使用以下每个变量运行函数:

adress_bar(gender, age_min, ... , telephone);

3)创建参数的数组或对象,并将它们全部作为一个传递。

var array = ["gender", "age_min", "age_max", "religion", "country", "address", "zip-code", "telephone"];

function address_bar(some_array){
//do something with some_array
}

address_bar(array);

答案 3 :(得分:-1)

这完全符合您的要求:

var x = [ 'gender', 'age_min', 'age_max', 'religion', 'country', 'address', 'zip-code', 'telephone' ];
address_bar.apply(this, x);

您可以阅读有关申请here的更多信息: