Javascript函数返回位置[0]的整个数组

时间:2012-06-29 01:28:10

标签: javascript arrays return

我是JS的新手(以及其他所有内容),我正在尝试使用函数生成一个随机数组,然后将该数组传递回main。我似乎正在制作我想要的数字数组,但随后整个数组被放入位置1(数组[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!

感谢您的任何反馈。

1 个答案:

答案 0 :(得分:1)

那是因为你在一个数组中嵌套了一个数组:setSecretCode返回一个数组,当你执行new Array (setSecretCode(enteredCode,enteredNumber));

时,你将该数组包装在一个新数组中

通常,Javascript中几乎不需要new Array()。只需使用数组文字[] - 它就是一样的东西。