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"));

0voto

Bishoy Hanna Punkte 11268

Wenn Sie ein 2D-Array für Google-Diagramme suchen, gehen Sie am besten wie folgt vor

var finalData = [];
[["key",value], ["2013-8-5", 13.5], ["2013-7-29",19.7]...]

Bezug nehmend auf Kein gültiges 2d-Array-Google-Diagramm

0voto

Martin Wantke Punkte 3753
var _field = (function()
{
    var array = [];
    for(var y = 0; y != 3; y++) { array[y] = new Array(5); }
    return array;
})();

// var item = _field[2][4];

0voto

Abdennour TOUMI Punkte 75271

Ein großartiges Repository aquí .

  • api : masfufa.js

  • Beispiel : masfufa.html

Zwei Beispiele genügen, um diese Bibliothek zu verstehen:

Beispiel 1:

   /*     | 1 , 2 , 3 |
    * MX= | 4 , 5 , 6 |     Dimensions= 3 x 3
    *     | 7 , 8 , 9 |
    */ 

  jsdk.getAPI('my');
  var A=[1, 2, 3, 4, 5, 6, 7, 8, 9];
  var MX=myAPI.getInstance('masfufa',{data:A,dim:'3x3'});

dann:

MX.get[0][0]  // -> 1 (first)
MX.get[2][2] //  ->9 (last)

Beispiel 2:

   /*      | 1 , 9 , 3 , 4 |
    * MXB= | 4 , 5 , 6 , 2 |     Dimensions= 2 x 4
    *   
    */ 

  var B=[1 , 9 , 3 , 4 , 4 , 5 , 6 , 2];
  var MXB=myAPI.getInstance('masfufa',{data:B,dim:'2x4'});

dann:

MXB.get[0][0]  // -> 1 (first)
MXB.get[1][3] //  -> 2 (last)
MXB.get[1][2] //  -> 6 (before last)

0voto

NGix Punkte 2374

Was passiert, wenn die Größe des Arrays unbekannt ist? Oder sollte das Array dynamisch erstellt und aufgefüllt werden? Alternative Lösung, die für mich gearbeitet ist, Klasse mit statischen 2d Array-Variable, die im Falle der Nicht-Existenz von Index in Array wird es initiieren zu verwenden:

function _a(x,y,val){
    // return depending on parameters
    switch(arguments.length){
        case 0: return _a.a;
        case 1: return _a.a[x];
        case 2: return _a.a[x][y];
    }

    // declare array if wasn't declared yet
    if(typeof _a.a[x] == 'undefined')
        _a.a[x] = [];

    _a.a[x][y] = val;
}
// declare static empty variable
_a.a = [];

Die Syntax wird sein:

_a(1,1,2); // populates [1][1] with value 2
_a(1,1);   // 2 or alternative syntax _a.a[1][1]
_a(1);     // [undefined × 1, 2]
_a.a;      // [undefined × 1, Array[2]]
_a.a.length

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