1390 Stimmen

Wie kann ich ein zweidimensionales Array in JavaScript erstellen?

Ich habe im Internet nachgelesen, und an einigen Stellen heißt es, es sei nicht möglich, an anderen wird ein Beispiel genannt, und wieder andere widerlegen das Beispiel usw.

  1. Wie deklariere ich ein 2-dimensionales Array in JavaScript? (vorausgesetzt, es ist möglich)

  2. Wie kann ich auf die Mitglieder zugreifen? ( myArray[0][1] o myArray[0,1] ?)

26 Stimmen

Ausgehend von einer etwas pedantischen Definition ist es technisch unmöglich, ein 2d-Array in Javascript zu erstellen. Aber Sie können ein Array von Arrays erstellen, die gleichbedeutend mit dem gleichen ist.

0 Stimmen

0 Stimmen

Für ein 5x3 2D-Array würde ich wie folgt vorgehen var arr2D = new Array(5).fill(new Array(3)); Wenn Sie außerdem nicht wollen, dass die Zellen "undefiniert" sind, können Sie wie folgt vorgehen var arr2D = new Array(5).fill(new Array(3).fill("hey"));

3voto

rickatech Punkte 511

Ein vereinfachtes Beispiel:

var blocks = [];

blocks[0] = [];

blocks[0][0] = 7;

3voto

Fabced Punkte 63

Ich habe festgestellt, dass dieser Code bei mir funktioniert:

var map = [
    []
];

mapWidth = 50;
mapHeight = 50;
fillEmptyMap(map, mapWidth, mapHeight);

...

function fillEmptyMap(array, width, height) {
    for (var x = 0; x < width; x++) {
        array[x] = [];
        for (var y = 0; y < height; y++) {

            array[x][y] = [0];
        }
    }
}

2voto

Manish Punkte 255
const arr = new Array(5).fill(new Array(5).fill(0));
console.log(arr);

8 Stimmen

Da dies die Antwort ist, die als das erste Ergebnis angezeigt wird, möchte ich nur erwähnen, dass (wie andere bereits erwähnt) in dieser Lösung die Arrays der zweiten Dimension per Referenz kopiert werden, so dass dies möglicherweise nicht der beste Weg ist, um ein 2D-Array zu erstellen

0 Stimmen

@air5 Sie scheinen nicht zu wissen, dass die Sortierreihenfolge nicht vorhersagbar ist. Ein "zuerst" gibt es hier nicht. Die Reihenfolge ist individuell konfigurierbar.

1 Stimmen

Das hat mich anfangs etwas verwirrt. Da es die 2. Dimension mit dem ersten Array durch Referenz füllt, wirkt sich jede Änderung an einem Array auf alle Arrays in der 2.

2voto

Juboraj Sarker Punkte 888
 var items = [
      ["January 01", 42.5],
      ["February 01",  44.3],
      ["March 01",  28.7],
      ["April 01",  44.3],
      ["May 01",  22.9],
      ["June 01",  54.4],
      ["July 01",  69.3],
      ["August 01",  19.1],
      ["September 01",  82.5],
      ["October 01",  53.2],
      ["November 01",  75.9],
      ["December 01",  58.7]

    ];
  alert(items[1][0]); // February 01
  alert(items[5][1]); // 54.4

2voto

chessweb Punkte 4483

Rekursive Funktion zur Erstellung eines mehrdimensionalen Arrays:

var makeArray = function (dims, arr) {          
    if (dims[1] === undefined) {
        return new Array(dims[0]);
    }

    arr = new Array(dims[0]);

    for (var i=0; i<dims[0]; i++) {
        arr[i] = new Array(dims[1]);
        arr[i] = makeArray(dims.slice(1), arr[i]);
    }

    return arr;
}

Baue ein 2x3x4x2 4D-Array:

var array = makeArray([2, 3, 4, 2]);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X