Декларирование javascript и вставка в многомерный массив
Я сейчас многомерный массив в JavaScript немного глупо. Но в моей программе я должен это использовать. Я хочу объявить динамический массив из 3 столбцов и m строк, используя JavaScript, а затем в цикле мне нужно вставить какой-то элемент в этот массив. наконец, я хочу отобразить этот массив.
var x = new Array();
for (var y=0; y<=counter; y++) {
x[y] = new Array (3);
x[y][0]='a';
x[y][1]='b';
x[y][2]='c';
}
Ваша помощь высоко ценится...
4 ответа
Массивы растут по мере необходимости, и поэтому нет смысла объявлять длину массива. то, с чего вы начали, хорошо. http://books.google.ca/books?id=4RChxt67lvwC&pg=PA141&lpg=PA141&dq=JS+array+grow+as+needed?&source=bl&ots=tgY8BlGXm8&sig=_3jcH1LTmYi9QiXxn9pHROpbN1s&hl=en&sa=X&ei=7v60T_XwA4ThggfGuoEX&ved=0CEoQ6AEwAQ
http://www.codingforums.com/showthread.php?t=5198
просто один на один создаст массив, который на 1 больше, чем счетчик. это b/c в вашем цикле for, у вас есть y<=counter и y, начинающийся с 0. Если вы хотите, чтобы длина счетчика была изменена на
y<counter
для отображения массива вы можете рассмотреть для вложенного цикла.
JS
for(var i=0; i<x.length; i++)
for (var j=0; j<3; j++)
alert(x[i][j]);
где x - ссылка на массив. если вы хотите напечатать весь массив сразу, подумайте о создании строки из элементов массива и выведите
function displayArray(x){
var stringArray='';
for(var i=0; i<x.length; i++)
for (var j=0; j<3; j++)
stringArray+= x[i][j];
alert(stringArray);
}
try something like this..
var cols = 3;
var rows = 5;
createArray(cols,rows);
function createArray(cols,rows) {
var newArray = [];
for(i=0;i<cols;i++) {
newArray[i] = [];
for(j=0;j<rows;j++) {
newArray[i][j] = "["+i+"]"+"["+j+"]";
}
}
return newArray;
}
Может быть как то так?
var sDataArray=MultiDimensionalArray(7,2);
alert(sDataArray[0][0]);
function MultiDimensionalArray(iRows,iCols)
{
var i;
var j;
var a = new Array(iRows);
for (i=0; i < iRows; i++)
{
a[i] = new Array(iCols);
for (j=0; j < iCols; j++)
{
a[i][j] = "";
}
}
return(a);
}
Быть динамическим в строках, может быть, вы хотите список массивов? Вы также можете сделать метод, чтобы добавить строку и увеличить размер массива.
Что-то вроде этого?
var x = [
[
[1, 2, 3],
[4,5,6]
],
[
[7, 8, 9]
]
];
alert(x[0][1][2]);
Это одна из причин, почему переменный синтаксис JavaScript не всегда такой, какой он есть. Сравните с Java:
String[][][] x = new String[5][5][5];