JavaScript将字符串转换为文字逗号列表
首先,没有办法将"1,2"
转换为字面上的1,2
。因为它是无效的类型。 1,2-更好表示为阵列
可以使用.apply像下面发送1,2-作为参数(数组格式)函数someMagic
someMagic.apply(context, [1,2]);
应用将调用someMagic和发送1,2-作为参数
使用拆分是答案。
var string = "1,2";
var splitString = string.split(","); //use , as an parameter to split
function doSomething(param1, param2) {
return parseInt(param1)+parseInt(param2);
};
doSomething.apply(this, "1,2".split(","));
// returns 3
也许这线程Converting an array to a function arguments list可能是你的兴趣。
var str = "1,2,3,4,5,6";
var arr=[];
function process(str){
// split the string into tokens
arr = str.split(",");
// go through each array element
arr.forEach(function(val,index,ar){
// convert each element into integer
var temp = parseInt(val);
// repopulate array
arr[index] = temp;
});
}
process(str);
console.log(arr);
请给你的答案添加一个解释。 – Haris
最好是添加一些评论,而不是只是在那里扔代码。 –
与user3146092的回答相似,这不会依赖于你的函数parseInt
。
someMagic.apply(this, '1,2'.split(',').map(function(n) { return parseInt(n, 10); }));
您可以创建一个数字数组并将它们作为参数传递,实际上,这是在JavaScript中执行此操作的最佳方式。
var nums = "1,2,3"
.split(",")
.map(function (num) { return parseInt(num, 10) });
现在您可以通过nums
作为您的参数。
你能提供更多的例子吗? –
理想情况下,我想通过将一个字符串中的“1,2”转换为参数来调用一些函数(1,2)。 – Jazzy
你试图实现的确切的事情是不可能的。想想看:'func(1,2)'被解析为带有两个参数的函数调用。即引擎已经知道,在执行代码之前,这只是解析而已。 OTOH''1,2“'是一个字符串文字。你想在运行时把它转换成别的东西*,也就是在所有的代码被解析后。您想要将运行时值转换为语法结构。语法不能在运行时更改或创建。唯一的方法就是使用'eval',我想这不是你想要的。 –