在Javascript中使用eval()解包数组
我有一个数组需要解包 所以,从类似在Javascript中使用eval()解包数组,javascript,eval,Javascript,Eval,我有一个数组需要解包 所以,从类似 var params = new Array(); params.push("var1"); params.push("var2"); 我需要一些类似的东西 “var1”、“var2” 我尝试使用eval,但是eval()给了我类似于var1、var2的东西……我自己不想插入引号,因为传递的变量可以是整数或其他类型。我需要将它传递给一个函数,这就是为什么我不能遍历数组并将其放入字符串中 这里的首选解决方案是什么?如果您有一个值数组,希望传递给填充形式参数的函
var params = new Array();
params.push("var1");
params.push("var2");
我需要一些类似的东西
“var1”、“var2”
我尝试使用eval,但是eval()给了我类似于var1、var2的东西……我自己不想插入引号,因为传递的变量可以是整数或其他类型。我需要将它传递给一个函数,这就是为什么我不能遍历数组并将其放入字符串中
这里的首选解决方案是什么?如果您有一个值数组,希望传递给填充形式参数的函数,则可以使用函数原型的方法
var arr = [1, 2, "three"];
function myFunc(a, b, c) {
// a = 1, b = 2, c = "three"
...
}
myFunc.apply(this, arr);
顺便说一下,上一条语句中的
this
参数可以设置为任何对象,以在myFunc
中设置this
的值。如果您有一个值数组要传递给填充形式参数的函数,那么您可以使用函数原型的方法
var arr = [1, 2, "three"];
function myFunc(a, b, c) {
// a = 1, b = 2, c = "three"
...
}
myFunc.apply(this, arr);
顺便说一下,上一条语句中的
this
参数可以设置为任何对象,以在myFunc
中设置this
的值,这将生成所需的输出
var params = new Array();
params.push("var1");
params.push("var2");
var s = "\"" + params.join("\",\"") + "\"";
这将生成所需的输出
var params = new Array();
params.push("var1");
params.push("var2");
var s = "\"" + params.join("\",\"") + "\"";
我怀疑你能否让JavaScript添加“本身,除非你可能使用JSON.stringify()”。它们只是字符串分隔符,不属于字符串值。问题是,我想传递变量的值……它们也可能不总是字符串。我想知道这是否可能。你希望“其他类型”如何序列化?当你说“传递值”时。。。您要传递到哪里?我正在尝试提出一个通用的解决方案,因此在传递时,我不知道函数将接受多少参数。因此,我将它们推入阵列。然后,我需要打开包装并传递它们。因此,放入数组的变量可能都是不同的类型:字符串、整数和其他数组。解包时,我希望能够执行如下操作:DoSomething(param1,param2,param3),其中param1。。param3来自数组。我在这里发布:没有真正的答案我怀疑你可以让JavaScript添加“本身,除非你可能使用JSON.stringify()”。它们只是字符串分隔符,不属于字符串值。问题是,我想传递变量的值……它们也可能不总是字符串。我想知道这是否可能。你希望“其他类型”如何序列化?当你说“传递值”时。。。您要传递到哪里?我正在尝试提出一个通用的解决方案,因此在传递时,我不知道函数将接受多少参数。因此,我将它们推入阵列。然后,我需要打开包装并传递它们。因此,放入数组的变量可能都是不同的类型:字符串、整数和其他数组。解包时,我希望能够执行如下操作:DoSomething(param1,param2,param3),其中param1。。param3来自数组。我在这里发帖:没有真正的答案,我从来不知道apply的存在。然而,这里的目的是什么?关于“这个”,我不太清楚。我需要它吗?如果您不确定,请使用
this
保留当前上下文,或传递null
以使用全局上下文。正如我所说,第一个参数控制函数中的这个所指的内容。太好了,这正是我所需要的。谢谢你,肖恩!谢谢,我从来不知道apply的存在。然而,这里的目的是什么?关于“这个”,我不太清楚。我需要它吗?如果您不确定,请使用this
保留当前上下文,或传递null
以使用全局上下文。正如我所说,第一个参数控制函数中的这个所指的内容。太好了,这正是我所需要的。谢谢你,肖恩!