0

私はJS(およびその他すべて)に非常に慣れていないので、関数を使用して乱数の配列を生成し、その配列をメインに戻そうとしています。必要に応じて数値の配列を作成しているように見えますが、配列全体が位置1(array [0])に配置され、配列の長さが1つの位置として読み取られます。私は他の場所でこの問題を見つけようとしましたが、私の問題に一致するものは何も見つかりません。

コードは次のとおりです。

//sets up an array of numbers that will be the secret code
// code = quantity of digits, number = numerals used for each digit

setSecretCode = function(code,numbers){ 

    var secretCode = "0";
    var secret = [];

    console.log("using code = "+ code); //used to verify parameters are correct
    console.log("and numbers = "+numbers); 
for (i=0; i < code; i++){ 
        secret[i] = Math.floor(Math.random()*numbers+1);
        console.log("secret#"+ i+"is"+secret[i]);
    }
    return secret;   

};



//function call - passing user defined parameters
var secret = new Array (setSecretCode(enteredCode,enteredNumber));


//printout of array for debugging
console.log("secret code is: "+ secret);      // returns appropriate looking code
console.log("secret0 = "+ secret[0]);         // whole array appears in this position
console.log("secret1 = "+ secret[2]);         // shows up as undefined

console.log(secret.length); //this illuminates problem -  array is only one position!

フィードバックありがとうございます。

4

1 に答える 1

1

これは、配列を配列内にネストしているためです。setSecretCodeは配列を返し、その配列を新しい配列内にラップします。new Array (setSecretCode(enteredCode,enteredNumber));

一般に、new Array()Javascriptではほとんど必要ありません。配列リテラルを使用するだけ[]です-それは同じことです。

于 2012-06-29T01:31:08.723 に答える