Question Comment puis-je créer un tableau à deux dimensions en JavaScript?


J'ai lu en ligne et certains endroits disent que ce n'est pas possible, certains disent que c'est et puis donnent un exemple et d'autres réfutent l'exemple, etc.

  1. Comment puis-je déclarer un tableau bidimensionnel en JavaScript? (en supposant que c'est possible)

  2. Comment aurais-je accès à ses membres? (myArray[0][1] ou myArray[0,1]?)


918
2018-06-08 18:24


origine


Réponses:


var items = [
  [1, 2],
  [3, 4],
  [5, 6]
];
console.log(items[0][0]); // 1
console.log(items);


1062
2018-06-08 18:27



Vous faites simplement de chaque élément du tableau un tableau.

var x = new Array(10);
for (var i = 0; i < 10; i++) {
  x[i] = new Array(20);
}
x[5][12] = 3.0;

374
2018-06-08 18:28



Similaire à la réponse d'activa, voici une fonction pour créer un tableau à n dimensions:

function createArray(length) {
    var arr = new Array(length || 0),
        i = length;

    if (arguments.length > 1) {
        var args = Array.prototype.slice.call(arguments, 1);
        while(i--) arr[length-1 - i] = createArray.apply(this, args);
    }

    return arr;
}

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

createArray(2);    // new Array(2)

createArray(3, 2); // [new Array(2),
                   //  new Array(2),
                   //  new Array(2)]

163
2018-06-08 20:49



Javascript n'a que des tableaux à une dimension, mais vous pouvez construire des tableaux de tableaux, comme d'autres l'ont souligné.

La fonction suivante peut être utilisée pour construire un tableau à deux dimensions de dimensions fixes:

function Create2DArray(rows) {
  var arr = [];

  for (var i=0;i<rows;i++) {
     arr[i] = [];
  }

  return arr;
}

Le nombre de colonnes n'est pas vraiment important, car il n'est pas nécessaire de spécifier la taille d'un tableau avant de l'utiliser.

Ensuite, vous pouvez simplement appeler:

var arr = Create2DArray(100);

arr[50][2] = 5;
arr[70][5] = 7454;
// ...

65
2018-06-08 18:32



Le moyen le plus simple:

var myArray = [[]];

59
2018-01-22 18:47



La raison pour laquelle certains disent que ce n'est pas possible est parce qu'un tableau bidimensionnel est juste un tableau de tableaux. Les autres commentaires ici fournissent des méthodes parfaitement valables de créer des tableaux bidimensionnels en JavaScript, mais le point de vue le plus pur serait que vous ayez un tableau d'objets unidimensionnel, chacun de ces objets serait un tableau unidimensionnel composé de deux éléments.

Donc, c'est la cause des points de vue contradictoires.


41
2018-06-08 18:33



Peu de gens montrent l'utilisation de la poussée:
Pour apporter quelque chose de nouveau, je vais vous montrer comment initialiser la matrice avec une valeur, exemple: 0 ou une chaîne vide "".
En rappelant que si vous avez un tableau de 10 éléments, en javascript le dernier index sera 9!

function matrix( rows, cols, defaultValue){

  var arr = [];

  // Creates all lines:
  for(var i=0; i < rows; i++){

      // Creates an empty line
      arr.push([]);

      // Adds cols to the empty line:
      arr[i].push( new Array(cols));

      for(var j=0; j < cols; j++){
        // Initializes:
        arr[i][j] = defaultValue;
      }
  }

return arr;
}

exemples d'utilisation:

x = matrix( 2 , 3,''); // 2 lines, 3 cols filled with empty string
y = matrix( 10, 5, 0);// 10 lines, 5 cols filled with 0

25
2017-08-08 02:22



Deux-liner:

var a = []; 
while(a.push([]) < 10);

Il va générer un tableau de la longueur 10, rempli de tableaux. (Push ajoute un élément à un tableau et renvoie la nouvelle longueur)


22
2018-05-26 10:00