-1

嗨,我试图在 Impactjs 中从单个字符串(单词列表)中保存的一长串单词中迭代一个 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 定义为全局,则上面的代码有效,但是当我将其定义为本地 num_words 时未正确定义并且随机单词抛出此对象没有方法子字符串 ..

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

4

1 回答 1

1
['wordlist' + xc].substring

永远不会起作用(好吧,除非它前面有另一个变量,例如。foo['wordlist' +xc].substring)。这是因为,在 Javascript 中[anything]意味着“'任何东西'的数组”,并且(正如 Kendall 提到的)数组没有子字符串方法。

尝试:

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

反而。

于 2012-07-11T23:42:12.267 回答