-1

こんにちは、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;
}

上記のコードは、単語リストをグローバルとして定義すると機能しますが、ローカルにすると、num_words が適切に定義されておらず、ランダムな単語がスローされ、このオブジェクトにはメソッド部分文字列がありません..

私の問題は、文字列名を追加して .length を呼び出すときにローカル変数に変換したため、wordlist3 = 20 の長さではなく、新しい名前の長さ (wordlist3.length = 9) が得られることです。このオブジェクトの部分文字列メソッドを呼び出します ...

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 に答える