Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从多维数组中获取随机数_Javascript_Multidimensional Array - Fatal编程技术网

Javascript 从多维数组中获取随机数

Javascript 从多维数组中获取随机数,javascript,multidimensional-array,Javascript,Multidimensional Array,在javascript函数中,我有一个多维数组,如下所示。 如何从myObject[1]中获取随机数 var myObject= [ [ [2,3], [5,9], [4,7] ], [ [1,3], [5,8] ], [ [1,2], [5,7], [6,9] ], [ [5,6], [1,7] ], [ [4,6], [1,9], [3,7],[2,8] ], [ [4,5], [3,9] ], [ [8,9], [3,5], [1,4] ], [ [7,9], [2,5] ], [

在javascript函数中,我有一个多维数组,如下所示。 如何从myObject[1]中获取随机数

    var myObject= [
[ [2,3], [5,9], [4,7] ],
[ [1,3], [5,8] ],
[ [1,2], [5,7], [6,9] ],
[ [5,6], [1,7] ],
[ [4,6], [1,9], [3,7],[2,8] ],
[ [4,5], [3,9] ],
[ [8,9], [3,5], [1,4] ],
[ [7,9], [2,5] ],
[ [7,8], [1,5], [3,6] ]
])

这可能有效:

var randomNumber = getRandom(myObject[1]);

function getRandom(arr) {
   var random1 = Math.floor((Math.random() * (arr.length)));
   return arr[random1][Math.floor((Math.random() * (arr[random1].length)))];
}

下面是一个递归函数,它应该可以做到这一点

var multiDimNumberPicker = function(inputArray){

    var randomItem;

    //if item is an array
    if( Object.prototype.toString.call( inputArray ) === '[object Array]' ) {

        //pick a random item to return
        randomItem = inputArray[Math.floor(Math.random()*inputArray.length)];

        console.log("is still array " + randomItem);

        //process selected item
        return multiDimNumberPicker(randomItem);

    }else{

        console.log("not an array " + inputArray);
        return inputArray;

    }

};

//Generate a random number from myObject[1];
var x = multiDimNumberPicker(myObject[1]);
console.log(x);

//Generate a random number from myObject;
var y = multiDimNumberPicker(myObject);
console.log(y);

示例jsiddle

从0到2选择一个随机数
i
,从0到1选择一个随机数
j
。然后获取
myObject[1][i][j]
。这是一组非常奇怪的嵌套数组。最外面的数组(如果是数组)以索引
1
开始,如果是数组,
长度将产生误导。但是所有其他的都是从索引
0
开始的,它们肯定是数组,它们的
长度将是准确的。我会保持一致,并且在整个过程中使用更具表现力的文字符号,而不仅仅是部分:你被困在哪里?您需要哪一位的帮助?您的意思是希望从
myObject[1]
中获得一个随机数吗?如果是这样的话,你为什么要告诉我们关于
myObject[2]
myObject[3]
,等等?T.J Crowder谢谢你的建议。实际上我只是在做一个小的tic-toc javascript游戏作为练习。当用户选择占据第一个位置时,将从myObject[1]数组中响应一个位置。警告!非常感谢您的帮助,但我得到了“1”作为随机数。实际上我的数组中没有“1”。