-1

プロジェクトで作業しているときに、配列「slicetable」が毎回undefinedを返すというこの問題があり、この問題を解決する方法がわかりません。暗号化キーの長さの尤度の配列を生成する関数があります。次に、テキストを「キー」の長さまで、n番目のキーの個々の文字列に分割する必要があります。私はこの問題に過去4時間取り組んできましたが、どこから始めればよいのかわかりません。誰かがこのような問題に取り組むための良い戦略を勧めることができ、そしてこれについて私を助けることができれば、それは素晴らしいことです-私はまだこれらすべてにまったく慣れていません。

function vigenerekey(text, max) {
    // Standardize the text
    text = text.split(" ").join("").toUpperCase();
    // Obtain our list of key length probabilities
    var probabilities = vigenerekeylength(text, max);
    // Extend the Math.max to arrays
    Array.max = function(array){
        return Math.max.apply(Math, array);
    };

    // Find the position of the most probable key length
    for (var d = 0; d <=12; d++) {
        if (probabilities[d] === probabilities.max) {
            return;
        }
    }
    // Slice the text into [d] parts (the length of the key)
    var slicetable = ['','','','','','','','','','','','','','','','','','','','',''];
    var chiresults = [];
    for (var e = 0; e <= d; e++){
        for (f = 0; f <= text.length; f++) {
            if (f % e === 0) {
                slicetable[e] += text.charAt(f);        
            }
        }
    return slicetable;
    }

}
4

2 に答える 2

2

これを意味するのではありません:(戻る代わりに休憩)

// Find the position of the most probable key length 
for (var d = 0; d <=12; d++) { 
    if (probabilities[d] === probabilities.max) { 
        break;
    } 
} 
于 2012-07-23T20:25:08.610 に答える
1

問題は、forループ内のreturnステートメントです。入れたい

break;  

それ以外の

return; 

最初の回答にタイプミスがあり(私が最初に回答を投稿しました)、モデレーターがそれを削除しました。タイプミスを修正しましたが、元に戻せないと表示されます...もう一度やり直します。

于 2012-07-23T20:40:28.103 に答える