2012-02-02 18 views
2

的字符串是的JavaScript - 分割字符串,並通過了所有值的函數

var str = "Beautiful Day"; 

我使用空格作爲分隔符

var substr = str.split(" "); 

上述應返回2個字和分裂海峽因此字符串的長度應該是2

var strLength = substr.length; 

現在,我想考績小號兩個詞作爲一個功能的獨立參數,即:

myFunction(word1, word2) 

但我不希望使用

substr[0] 
substr[1] 
+0

你能設置'word1 = substr [0]'和'word2 = substr [1]'嗎?在功能 – user836200 2012-02-02 03:26:44

回答

8

由於split返回一個數組,該apply方法是完美的你:

var str = 'It is a beautiful day'; 
alertEmAll.apply(null, str.split(' ')); 


function alertEmAll(){ 
    for(var i = 0; i < arguments.length; i++) 
     alert(arguments[i]); 
} 

編輯

由於您擁有可變數量的參數,因此您可能還想使用arguments類似數組的對象。上面的代碼會一個接一個地提醒輸入字符串中的所有單詞。

+0

中,我該如何區分這兩個單詞? – techlead 2012-02-02 03:32:07

+0

@ SK11 a是第一個單詞,b是第二個單詞,如果你添加了另一個像'thefunc(a,b,c)'這樣的參數,那麼c將包含第三個單詞(分裂後數組中的第三個單元),如果你的字符串有三個字。如果不是'c'將會是'undefined'。 – Paulpro 2012-02-02 03:33:11

+0

如果'str =「這是一個美好的一天」',這將不起作用。這意味着我仍然需要手動傳遞參數的數量。是否有一種方法可以遍歷字符串的長度並動態地將參數傳遞給函數? – techlead 2012-02-02 03:35:37