Объявление нескольких переменных с использованием цикла javascript - PullRequest
2 голосов
/ 10 сентября 2011

Я пытался создать массив, который содержит 3 фиксированных поля.Итак, что-то вроде

var x0 = new Array(x,y,z);

Теперь дело в том, что может быть несколько массивов, таких как x [], которые имеют разные значения.Так что-то вроде

   var x1 = new Array(x,y,z); x2 = new Array(x,y,z);

Я бы передавал значения в переменные x, y, z как x0 [0] = "test", x0 [1] = "another", ...Мне нужно создать переменное количество таких массивов, так что, скажем, если я передам значение, скажем, 10, это должно создать для меня 10 различных массивов.Как это сделать, разрешено ли использовать цикл для создания переменных?

Существует нечто, называемое многомерным массивом, но я не был уверен, как его использовать.Я пытался, но, видимо, это очень отличается, и я не понял этого.Кроме того, я подумал об объявлении объекта, передаче значений его параметрам и создании объектов по мере необходимости.Это возможно?И какой метод будет лучше?

Есть ли другой способ сделать это?может быть что-нибудь, что будет наиболее эффективным

Ответы [ 3 ]

2 голосов
/ 10 сентября 2011

Просто создайте массив массивов:

var myArrays = [];

for(var i=0;i<something;i++){
    myArrays.push([x,y,z]);
}

Тогда вместо x0[0] вы получите x[0][0].

Обратите внимание, вы не должны использовать new Array, новместо этого используйте [].

1 голос
/ 10 сентября 2011
var n = 100; // number of x-arrays (x0, x1, ...)
var allX = new Array(n); // array of length n

for (var i=0; i<n; i++){
   allX[i] = [x,y,z]; // array with elements x, y, z
}

теперь вы можете получить доступ, например, ко второму массиву (x1), например:

var x1 = allX[1];

или к третьему элементу третьего массива (x2[2]), например:

var z = allX[2][2];

Редактировать : см. это объяснение о различиях объявления массива между new Array() и []

1 голос
/ 10 сентября 2011

Вы имеете в виду

var x  =[];
x[0]=["x","y","z"];
x[1]=["x","y","z"];
x[2]=["x","y","z"];

или

function addArr(arr,newarr) {
  arr[arr.length]=newarr; // or arr.push(newarr);
}
var x  =[];
for (var i=0;i<10;i++) {
  addArr(x,[i,i+1,i+2]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...