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

11voto

Chirag Agrawal Punkte 183
Array(m).fill(v).map(() => Array(n).fill(v))

Sie können ein 2-dimensionales Array erstellen m x n mit Anfangswert m y n können beliebige Zahlen sein v kann ein beliebiger Wert sein string , number , undefined .

Ein Ansatz kann sein var a = [m][n]

0 Stimmen

Ihre Antwort gefällt mir, aber Sie brauchen map() nicht zu verwenden, Sie können es mit fill() allein tun, wie folgt: var map = new Array(height).fill(new Array(width).fill(val)); Erstellen eines Arrays wie folgt: map[y][x] = val;

10voto

devMoki Punkte 131

Das folgende Beispiel definiert ein zweidimensionales Array mit dem Namen activities:

    let activities = [
        ['Work', 9],
        ['Eat', 1],
        ['Commute', 2],
        ['Play Game', 1],
        ['Sleep', 7]
    ];

Im Array der Aktivitäten steht die erste Dimension für die Aktivität und die zweite für die Anzahl der Stunden, die pro Tag für jede Aktivität aufgewendet werden.

Um das Aktivitäten-Array in der Konsole anzuzeigen, verwenden Sie die Methode console.table() wie folgt:

console.table(activities);

Die folgende Abbildung zeigt die Ausgabe:

 (index)       0       1 

    0       'Work'     9 
    1        'Eat'     1 
    2      'Commute'   2 
    3     'Play Game'  1 
    4       'Sleep'    7 

Beachten Sie, dass die (index) Spalte dient der Veranschaulichung, die die Indizes des inneren Arrays angibt.

Um auf ein Element des mehrdimensionalen Arrays zuzugreifen, verwenden Sie zunächst eckige Klammern, um auf ein Element des äußeren Arrays zuzugreifen, das ein inneres Array zurückgibt, und dann eine weitere eckige Klammer, um auf das Element des inneren Arrays zuzugreifen.

Das folgende Beispiel gibt das zweite Element des ersten inneren Arrays im obigen Aktivitäten-Array zurück:

console.log(activities[0][1]); // 9

Hinzufügen von Elementen zu einem mehrdimensionalen JavaScript-Array

Sie können die Array-Methoden verwenden, wie z. B. push() y splice() um Elemente eines mehrdimensionalen Arrays zu manipulieren.

Um zum Beispiel ein neues Element am Ende eines mehrdimensionalen Arrays hinzuzufügen, verwenden Sie die push() Methode wie folgt:

activities.push(['Study',2]);
 (index)       0       1 

    0       'Work'     9 
    1        'Eat'     1 
    2      'Commute'   2 
    3     'Play Game'  1 
    4       'Sleep'    7 
    5       'Study'    2 

Um ein Element in der Mitte des Arrays einzufügen, verwenden Sie die splice() Methode. Im Folgenden wird ein Element an der zweiten Position des Aktivitäten-Arrays eingefügt:

activities.splice(1, 0, ['Programming', 2]);
 (index)        0        1 

    0        'Work'      9 
    1     'Programming'  2 
    2         'Eat'      1 
    3       'Commute'    2 
    4      'Play Game'   1 
    5        'Sleep'     7 
    6        'Study'     2 

In diesem Beispiel wird der prozentuale Anteil der für die einzelnen Aktivitäten aufgewendeten Stunden berechnet und an das innere Array angehängt.

activities.forEach(activity => {
    let percentage = ((activity[1] / 24) * 100).toFixed();
    activity[2] = percentage + '%';
});
 (index)        0        1    2   

    0        'Work'      9  '38%' 
    1     'Programming'  2  '8%'  
    2         'Eat'      1  '4%'  
    3       'Commute'    2  '8%'  
    4      'Play Game'   1  '4%'  
    5        'Sleep'     7  '29%' 
    6        'Study'     2  '8%'  

Entfernen von Elementen aus einem mehrdimensionalen JavaScript-Array

Um ein Element aus einem Array zu entfernen, verwenden Sie die pop() o splice() método.

Die folgende Anweisung entfernt zum Beispiel das letzte Element des Arrays activities:

activities.pop();
 (index)        0        1    2   

    0        'Work'      9  '38%' 
    1     'Programming'  2  '8%'  
    2         'Eat'      1  '4%'  
    3       'Commute'    2  '8%'  
    4      'Play Game'   1  '4%'  
    5        'Sleep'     7  '29%' 

Auf ähnliche Weise können Sie die Elemente aus dem inneren Array des mehrdimensionalen Arrays entfernen, indem Sie die pop() Methode. Das folgende Beispiel entfernt das Element "percentage" aus den inneren Feldern des Arrays "activities".

activities.forEach((activity) => {
    activity.pop(2);
});
 (index)        0        1 

    0        'Work'      9 
    1     'Programming'  2 
    2         'Eat'      1 
    3       'Commute'    2 
    4      'Play Game'   1 
    5        'Sleep'     7 

Iteration über Elemente des mehrdimensionalen JavaScript-Arrays

Um ein mehrdimensionales Array zu iterieren, verwenden Sie eine verschachtelte for Schleife wie im folgenden Beispiel.

// loop the outer array

for (let i = 0; i < activities.length; i++) {
    // get the size of the inner array
    var innerArrayLength = activities[i].length;
    // loop the inner array
    for (let j = 0; j < innerArrayLength; j++) {
        console.log('[' + i + ',' + j + '] = ' + activities[i][j]);
    }
}

Die erste Schleife iteriert über die Elemente des äußeren Arrays und die verschachtelte Schleife iteriert über die Elemente des inneren Arrays.

Die folgende Abbildung zeigt die Ausgabe des Skripts in der Konsole:

[0,0] = Work
[0,1] = 9
[1,0] = Eat
[1,1] = 1
[2,0] = Commute
[2,1] = 2
[3,0] = Play Game
[3,1] = 1
[4,0] = Sleep
[4,1] = 7
[5,0] = Study
[5,1] = 2

Oder Sie können die forEach() Methode zweimal:

activities.forEach((activity) => {
    activity.forEach((data) => {
        console.log(data);
    });
});
Work
9
Eat
1
Commute
2
Play Game
1
Sleep
7
Study
2

3 Stimmen

Schamloses Kopieren und Einfügen von javascripttutorial.net/javascript-multidimensional-array

8voto

Sam YC Punkte 9375

Ich habe herausgefunden, dass die folgende Methode am einfachsten ist:

var array1 = [[]];   
array1[0][100] = 5; 

alert(array1[0][100]);
alert(array1.length);
alert(array1[0].length);

0 Stimmen

array1[1][100] = 666; wirft Uncaught TypeError: Cannot set property '100' of undefined

0 Stimmen

@KamilKieczewski Sie haben Recht, sieht aus wie dies nur für das erste Array von Array initiieren, für die zweite, bevor Sie tun array1[1][100] = 666; müssen Sie Folgendes tun array1[1] = []; .

8voto

Alexander Punkte 554

Mein Ansatz ist der Antwort von @Bineesh sehr ähnlich, allerdings mit einem allgemeineren Ansatz.

Sie können das Double-Array wie folgt deklarieren:

var myDoubleArray = [[]];

Und die Speicherung und der Zugriff auf die Inhalte in der folgenden Weise:

var testArray1 = [9,8]
var testArray2 = [3,5,7,9,10]
var testArray3 = {"test":123}
var index = 0;

myDoubleArray[index++] = testArray1;
myDoubleArray[index++] = testArray2;
myDoubleArray[index++] = testArray3;

console.log(myDoubleArray[0],myDoubleArray[1][3], myDoubleArray[2]['test'],) 

Dies gibt die erwartete Ausgabe aus

[ 9, 8 ] 9 123

7voto

antelove Punkte 2552
var playList = [
  ['I Did It My Way', 'Frank Sinatra'],
  ['Respect', 'Aretha Franklin'],
  ['Imagine', 'John Lennon'],
  ['Born to Run', 'Bruce Springsteen'],
  ['Louie Louie', 'The Kingsmen'],
  ['Maybellene', 'Chuck Berry']
];

function print(message) {
  document.write(message);
}

function printSongs( songs ) {
  var listHTML;
  listHTML = '<ol>';
  for ( var i = 0; i < songs.length; i += 1) {
    listHTML += '<li>' + songs[i][0] + ' by ' + songs[i][1] + '</li>';
  }
  listHTML += '</ol>';
  print(listHTML);
}

printSongs(playList);

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