在字符串名称后附加一个整数

时间:2012-07-11 23:26:56

标签: javascript

嗨我试图在impactjs中的单个字符串(wordlist)中的一长串单词中迭代for循环:

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;
}

如果我将wordlist定义为全局,上面的代码是有效的,但是当我将它定义为local时,num_words未正确定义并且随机词抛出此对象没有方法子字符串..

我的问题是,因为当我追加字符串名称并调用.length时我转换为局部变量它给了我新名称的长度(wordlist3.length = 9)而不是wordlist3 = 20的长度。我也不能在这个对象上调用方法substring ...

1 个答案:

答案 0 :(得分:1)

['wordlist' + xc].substring

永远不会工作(好吧,除非它之前是另一个变量,例如。foo['wordlist' +xc].substring)。这是因为,在Javascript中[anything]表示“一个'任何''的数组”,并且(正如Kendall所提到的)数组没有子串方法。

尝试:

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

代替。