Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays - Fatal编程技术网

Javascript 如何从多维数组中获取值

Javascript 如何从多维数组中获取值,javascript,arrays,Javascript,Arrays,我试图访问数组中的值,并将每个值赋给一个变量,稍后我将使用该变量。我创建了一个数组,通过函数randomGo得到了外部数组的一个随机数,它返回了一对数字。然后我想把每个值赋给一个变量。例如,如果我从randomPlaces[0]获得数字,如何使变量x=51.528868434293244和变量y=-0.101794299993772?谢谢我只使用Javascript和HTML var randomPlaces = [[51.528868434293244, -0.1017942999999377

我试图访问数组中的值,并将每个值赋给一个变量,稍后我将使用该变量。我创建了一个数组,通过函数randomGo得到了外部数组的一个随机数,它返回了一对数字。然后我想把每个值赋给一个变量。例如,如果我从randomPlaces[0]获得数字,如何使变量x=51.528868434293244和变量y=-0.101794299993772?谢谢我只使用Javascript和HTML

var randomPlaces = [[51.528868434293244, -0.10179429999993772], [40.70590473669712, -73.9780035], [48.85887766623369, 2.3470598999999766], [53.32443937613261, -6.251694999999927], [41.392700620871764, 2.139299250000022], [41.83401317282514, -87.73215545], [-33.79773327558923, 150.92243254999994], [50.05981411178046, 14.465623900000082], [52.50786264022465, 13.426141949999987], [30.02193806214437, -89.8822859]];

var randomLength = randomPlaces.length;

    function randomGo(){
        var randomValue = randomPlaces[Math.floor(randomPlaces.length * Math.random())];
    }

JavaScript只有一维数组,但数组中的元素本身也可以是数组。这就是你所拥有的。就JavaScript的通用数组而言

因此:

当然了

var randomPlace = randomPlaces[0];
var x = randomPlace[0];
var y = randomPlace[1];
分解:randomPlaces[0]返回randomPlaces中的第一个条目,它是对[51.528868434293244,-0.101794299993772]数组的引用。然后,我们对其进行索引。您想要的x值位于第一个位置,因此位于[0];第二个位置y的值,因此[1]

如果需要第二个数组中的值[40.70590473669712,-73.9780035],可以使用:

var x = randomPlaces[1][0];
var y = randomPlaces[1][1];
…第三个数组将位于[2],以此类推

如果要随机获取位置,可以使用Math.random,它返回一个介于0和1之间的小数,包括0,不包括1,然后将其乘以数组的长度,并将结果四舍五入。假设数组有20个条目,Math.random返回0.8:0.8*20=16。例如:

var index, randomPlace, x, y;
index = Math.floor(Math.random() * randomPlace.length);
randomPlace = randomPlaces[index];
x = randomPlace[0];
y = randomPlace[1];

你试过调用元素吗

您似乎可以通过拨打RandomPlaces[0][0]获得51.528868434293244 以及-0.101794299993772,方法是调用RandomPlaces[0][1]


现在,您只需同时调用这两个值,通过调用randomValue[0]和randomValue[1]您可能仍然可以访问它们。

在获得randomValue后添加以下内容:

var x = randomValue[0];
var y = randomValue[1];

谢谢你的回复!但是,如果我想要随机生成第一个数组位置时的值,会发生什么呢。我有math.random给了我第一个数组,所以我不知道我会得到什么值。@user1876246:我在答案中添加了一些关于随机数的内容。非常感谢,这非常有效@user1876246:不用担心,很高兴这对您有所帮助。@user1876246:如果这回答了问题,那么您可以通过单击旁边的复选标记来接受答案。更多:
var x = randomValue[0];
var y = randomValue[1];