-4

我正在尝试访问我的数组中的值并将每个值分配给我稍后将使用的变量。我创建了一个数组,并通过函数 randomGo() 获得了外部数组的随机数,它返回这对数字。然后我想将每个值分配给一个变量。例如,如果我从 randomPlaces [0] 获得数字,我如何制作 var x= 51.528868434293244 和 var y= -0.10179429999993772?谢谢!我只使用 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())];
    }
4

3 回答 3

2

JavaScript 只有一维数组——但数组中的元素本身也可以是数组。这就是你所拥有的。(好吧,在某种程度上,JavaScript 的泛型数组甚至是数组......)

所以:

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

或者当然

var randomPlace = randomPlaces[0];
var x = randomPlace[0];
var y = randomPlace[1];

将其分解:randomPlaces[0]返回 中的第一个条目randomPlaces,它是对您的[51.528868434293244, -0.10179429999993772]数组的引用。然后我们对此进行索引。你想要的值x在第一位,所以在[0]; y在第二个位置的值,所以[1]

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

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

...第三个数组将在[2]等处。

如果您想随机获取位置,您将使用,它返回和(包括,不包括Math.random)之间的小数,并将其乘以数组的长度,将结果取整(向下取整)。(假设数组有 20 个条目并返回: 。)例如:0101Math.random()0.80.8 * 20 = 16

var index, randomPlace, x, y;
index = Math.floor(Math.random() * randomPlace.length);
randomPlace = randomPlaces[index];
x = randomPlace[0];
y = randomPlace[1];
于 2012-12-04T15:59:24.700 回答
0

您是否尝试过调用元素?

看来您应该能够通过调用 RandomPlaces[0][0] 和 -0.10179429999993772 通过调用 RandomPlaces[0][1] 来获得 51.528868434293244。

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

于 2012-12-04T16:01:33.880 回答
0

在获得 randomValue 后添加:

var x = randomValue[0];
var y = randomValue[1];
于 2012-12-04T16:03:41.807 回答