嗨我试图在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 ...
答案 0 :(得分:1)
['wordlist' + xc].substring
永远不会工作(好吧,除非它之前是另一个变量,例如。foo['wordlist' +xc].substring
)。这是因为,在Javascript中[anything]
表示“一个'任何''的数组”,并且(正如Kendall所提到的)数组没有子串方法。
尝试:
random_word =(('wordlist' + xc).substring(n,(n+word_length)))
代替。