2012-07-11 137 views
-1

你好我試着從一個字符串(單詞表)舉行字的長字符串通過迭代for循環,impactjs內的整數:追加到字符串名稱

var wordlist3 ="hellwhentrysthisbreaks" 
var xc=3; 
var word_length = 4; 
var words_in_round = 4;    
for (i=0; i<words_in_round; i++){   
    var num_words = ['wordlist' + xc].length/word_length; 
    var random = Math.floor(Math.random() * ((num_words+1) - 0)); 
    n = Math.round(random/word_length) * word_length; 
    random_word =(['wordlist' + xc].substring(n,(n+word_length))) 
    random_words += random_word; 
} 

上面的代碼工作,如果我定義詞彙表爲一個全球性的,但是當我做它本地num_words沒有正確定義和隨機詞引發此對象沒有方法子字符串..

我的問題是,因爲我轉換爲本地變量時,我附加字符串名稱並調用.length它給我的新名稱的長度(wordlist3.length = 9),而不是wordlist3 = 20的長度..我也無法調用方法子字符串是對象...

+0

你沒有很好地解釋你的問題。但是我可以告訴你,'['wordlist3']'是一個當然沒有'substring'方法的數組。 – 2012-07-11 23:32:12

+0

對不起!第一次在stackflow,noob編碼器..但你已經突出了第一個問題:我如何追加一個var名稱,仍然保持字符串屬性 – 2012-07-11 23:35:03

回答

1
['wordlist' + xc].substring 

將永遠不會工作(當然,除非它的前面有另一個變量,例如。 foo['wordlist' +xc].substring)。這是因爲,在Javascript中,[anything]意味着「任何東西的數組」,並且(如Kendall所述)數組沒有子字符串方法。

嘗試:

random_word =(('wordlist' + xc).substring(n,(n+word_length))) 

代替。

+0

更改括號擺脫了錯誤,但沒有結果.. now wordlist3 num_words should = 422但num_words(使用括號)= 3.所以即時獲取wordlist3(9個字符)/ 3 = 3而不是wordlist3字符串的長度。 – 2012-07-11 23:55:31

+0

是的,當它是全球性的時候,我在它之前。 – 2012-07-12 00:05:00