Проблема в определении многомерного массива JavaScript - PullRequest
0 голосов
/ 11 апреля 2011

это мой код javascript для определения многомерного массива

    var array = new Array(2);
    for (i = 0; i < array.length; i++) {
        array[0] = new Array(4);
    }
    array[0][0] = "name1";
    array[0][1] = "property1";
    array[0][2] = "value1";
    array[0][3] = "0";

    //this is where the error happened
    array[1][0] = "name2";
    array[1][1] = "property2";
    array[1][2] = "value2";
    array[1][3] = "1";

но firebug скажет мне ошибку: массив [1] не определен

который я отмечаю в коде выше

Но массив [0] [] Я мог бы определить и дать им значение,

Так почему проблема произошла в этом месте? Спасибо

Ответы [ 4 ]

2 голосов
/ 11 апреля 2011

array[0] = new Array(4) должно быть array[i] = new Array(4).

Это можно сделать намного более кратко с помощью литералов массива:

var array = [
    ["name1", "property1", "value1", "0"],
    ["name2", "property2", "value2", "1"]
];
2 голосов
/ 11 апреля 2011

Ваш цикл переопределяет первый член массива.

var array = new Array(2);
for (i = 0; i < array.length; i++) {
    array[i] = new Array(4);
}
array[0][0] = "name1";
array[0][1] = "property1";
array[0][2] = "value1";
array[0][3] = "0";

//this is where the error happened
array[1][0] = "name2";
array[1][1] = "property2";
array[1][2] = "value2";
array[1][3] = "1";

Если это все, что вы делаете, вы можете использовать для этого краткий синтаксис

var array = [
        [
            "name1",
            "property1",
            "value1",
            "0"
        ],
        [
            "name2",
            "property2",
            "value2",
            "1"
        ]
    ];
0 голосов
/ 11 апреля 2011

Примечание:

for (i = 0; i < array.length; i++) {
    array[0] = new Array(4);
}

Вы всегда инициализируете array[0], но я думаю, что вы хотите сказать array[i]

0 голосов
/ 11 апреля 2011

JavaScript не имеет многомерных массивов. Тем не менее, вы можете иметь массивы массивов. Вот как вы можете создать то, что вы ищете:

var array = [
    ["name1", "property1", "value1", "0"],
    ["name2", "property2", "value2", "1"]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...