0

我对 JS(以及其他所有东西)都很陌生,我正在尝试使用一个函数来生成一个随机数数组,然后将该数组传递回主数组。我似乎正在按照我的意愿制作数字数组,但随后整个数组被放入位置一(数组 [0]),并且数组长度读取为一个位置。我试图在其他地方找到这个问题,但没有看到任何与我的问题相匹配的东西。

这是代码:

//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 回答