2015-11-08 57 views
0

有没有办法将"1,2"转换为1,2使用本机JS没有某种包装?JavaScript将字符串转换为文字逗号列表

"1,2".someMagic() \\ 1,2

最后,我想通过这个作为参数的函数。

+1

你能提供更多的例子吗? –

+0

理想情况下,我想通过将一个字符串中的“1,2”转换为参数来调用一些函数(1,2)。 – Jazzy

+0

你试图实现的确切的事情是不可能的。想想看:'func(1,2)'被解析为带有两个参数的函数调用。即引擎已经知道,在执行代码之前,这只是解析而已。 OTOH''1,2“'是一个字符串文字。你想在运行时把它转换成别的东西*,也就是在所有的代码被解析后。您想要将运行时值转换为语法结构。语法不能在运行时更改或创建。唯一的方法就是使用'eval',我想这不是你想要的。 –

回答

1

首先,没有办法将"1,2"转换为字面上的1,2。因为它是无效的类型。 1,2-更好表示为阵列

可以使用.apply像下面发送1,2-作为参数(数组格式)函数someMagic

someMagic.apply(context, [1,2]); 

应用将调用someMagic和发送1,2-作为参数

0

使用拆分是答案。

var string = "1,2"; 
var splitString = string.split(","); //use , as an parameter to split 

http://www.w3schools.com/jsref/jsref_split.asp

+0

转换为数组 – Jazzy

+0

然后可以将该数组传递给'apply'。 'someMagic.apply(null,string.split(“,”))' – SpiderPig

0
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); 
+0

请给你的答案添加一个解释。 – Haris

+0

最好是添加一些评论,而不是只是在那里扔代码。 –

0

与user3146092的回答相似,这不会依赖于你的函数parseInt

someMagic.apply(this, '1,2'.split(',').map(function(n) { return parseInt(n, 10); })); 
0

您可以创建一个数字数组并将它们作为参数传递,实际上,这是在JavaScript中执行此操作的最佳方式。

var nums = "1,2,3" 
    .split(",") 
    .map(function (num) { return parseInt(num, 10) }); 

现在您可以通过nums作为您的参数。

相关问题