2015-11-08 95 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作爲您的參數。

相關問題