如何从多维数组中获取值

时间:2012-12-04 15:56:40

标签: javascript arrays

我正在尝试访问我的数组中的值,并将每个值分配给我稍后将要使用的变量。我有一个创建的数组,通过函数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())];
    }

3 个答案:

答案 0 :(得分:2)

JavaScript只有一维数组 - 但数组中的元素本身也可以是数组。那就是你在那里。 (好吧,就JavaScript的通用数组are even arrays at all ...)

而言

所以:

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,它会在01之间返回一个小数,包括0 ex 1的群集,并将其乘以数组的长度,将结果放在地上(向下舍入)。 (假设数组有20个条目,Math.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];

答案 1 :(得分:0)

您是否尝试过调用该元素?

看起来你应该可以通过调用RandomPlaces [0] [0]来获得51.528868434293244 和-0.10179429999993772通过调用RandomPlaces [0] [1]。

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

答案 2 :(得分:0)

获得randomValue后添加:

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