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

2voto

Hristo Enev Punkte 2251

Ich habe eine Änderung von Matthew Crumley für die Erstellung einer mehrdimensionalen Array-Funktion. Ich habe die Dimensionen des Arrays hinzugefügt, die als Array-Variable übergeben werden sollen, und es wird eine weitere Variable geben - value die verwendet werden, um die Werte der Elemente der letzten Arrays in dem mehrdimensionalen Array festzulegen.

/*
*   Function to create an n-dimensional array
*
*   @param array dimensions
*   @param any type value
*
*   @return array array
 */
function createArray(dimensions, value) {
    // Create new array
    var array = new Array(dimensions[0] || 0);
    var i = dimensions[0];

    // If dimensions array's length is bigger than 1
    // we start creating arrays in the array elements with recursions
    // to achieve multidimensional array
    if (dimensions.length > 1) {
        // Remove the first value from the array
        var args = Array.prototype.slice.call(dimensions, 1);
        // For each index in the created array create a new array with recursion
        while(i--) {
            array[dimensions[0]-1 - i] = createArray(args, value);
        }
    // If there is only one element left in the dimensions array
    // assign value to each of the new array's elements if value is set as param
    } else {
        if (typeof value !== 'undefined') {
            while(i--) {
                array[dimensions[0]-1 - i] = value;
            }
        }
    }

    return array;
}

createArray([]);              // [] or new Array()

createArray([2], 'empty');    // ['empty', 'empty']

createArray([3, 2], 0);       // [[0, 0],
                              //  [0, 0],
                              //  [0, 0]]

1voto

mpiliszcz Punkte 307

Nodejs + lodash Version:

var _ = require("lodash");
var result = _.chunk(['a', 'b', 'c', 'd', 'e', 'f'], 2);
console.log(result);
console.log(result[2][0]);

Das Ergebnis:

[ [ 'a', 'b' ], [ 'c', 'd' ], [ 'e', 'f' ] ]
e

1voto

Javascript Coder Punkte 5437

Meine Lösung wird nicht die beste sein, aber ich gebe nur meine Lösungen, um benutzerdefinierte mehrdimensionale Arrays zu erstellen.

Diese Funktion akzeptiert Zeilen und Spalten,

function createArray(row,column) {
let arr = [];

for(var i=0; i<row; i++){
    arr[i] = [Math.floor(Math.random() * (10))];

    for(var j=0;j<column;j++){
        arr[i][j]= [Math.floor(Math.random() * (20))];
    }
}

return arr;
}

var arrVal = createArray(4, 5);

console.log(arrVal);

1 Stimmen

Bitte stapeln Sie keine Frage auf eine Antwort, die eigentlich eine Antwort ist.

1 Stimmen

Sicher, Yuuosch. wird nicht

1voto

Avishai Roi Punkte 21

Sie können auch eine Funktion erstellen, um ein 2D-Array wie dieses zu erstellen:

var myTable = [];

function createArray(myLength) {
    myTable = new Array(myLength);
    var cols, rows;
    for (cols = 0; cols < myLength; cols++) {
        myTable[cols] = new Array(myLength);
    }
}

Sie können es mit folgendem Befehl aufrufen, der Ihnen ein 10x10 2D-Array liefert.

createArray(10);

Sie können mit dieser Methode auch ein 3D-Array erstellen.

1voto

Error404 Punkte 721
Array.from({length: rows}).map(e => new Array(columns));

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