在Javascript中使用eval()来解压缩数组

时间:2010-05-25 22:00:18

标签: javascript eval

我有一个需要解压缩的数组。

所以,从

这样的东西
var params = new Array();
params.push("var1");
params.push("var2");

我需要像

这样的东西

“var1”,“var2”。

我尝试使用eval,但是eval()给了我类似var1,var2 ...我不想自己插入引号,因为传递的vars可以是整数或其他类型。我需要将它传递给一个函数,这就是为什么我不能只遍历数组并将其推入一个字符串。

这里的首选解决方案是什么?

2 个答案:

答案 0 :(得分:7)

如果要将一组值传递给填充形式参数的函数,则可以使用函数原型的apply方法。

var arr = [1, 2, "three"];

function myFunc(a, b, c) {
   // a = 1, b = 2, c = "three"
   ...
}

myFunc.apply(this, arr);

顺便说一下,最后一个语句中的this参数可以设置为任何对象,以设置this内的myFunc的值

答案 1 :(得分:0)

这会生成您想要的输出

var params = new Array();
params.push("var1");
params.push("var2");

var s = "\"" + params.join("\",\"") + "\"";