2012-07-11 69 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