web-dev-qa-db-fra.com

Comment supprimer une ligne dans un tableau 2d en javascript

Comment supprimer une ligne dans un tableau à deux dimensions en JavaScript avec un numéro de ligne. Si je veux supprimer tous les éléments de la ligne numéro 4, comment le faire?

10
Rajani Rampelli

Voici un exemple de suppression d’une ligne à l’aide de splice :

var array = [];

var count = 0;
for (var row=0; row<4; row++) {
    array[row] = [];
    for (var col=0; col<5; col++) {
      array[row][col] = count++;
    }
}

console.log(array);

   [ [ 0,  1,  2,  3,  4  ],
     [ 5,  6,  7,  8,  9  ],
     [ 10, 11, 12, 13, 14 ],
     [ 15, 16, 17, 18, 19 ] ]


function deleteRow(arr, row) {
   arr = arr.slice(0); // make copy
   arr.splice(row - 1, 1);
   return arr;
}

console.log(deleteRow(array, 4));

[ [ 0,  1,  2,  3,  4  ],
  [ 5,  6,  7,  8,  9  ],
  [ 10, 11, 12, 13, 14 ] ]
10
Miguel Mota

Disons que vous avez un tableau 'arr', alors vous pouvez supprimer toute la ligne de arr.splice(3,1);

5
Vaibhav

Je me rends compte que cette question est ancienne, mais c’est l’un des premiers résultats de la recherche de la suppression d’un tableau 2D (multidimensionnel) dans JS.

Voici ce que j'avais l'habitude de supprimer le tableau interne basé sur une clé du tableau interne. Il devrait continuer à fonctionner s'il y avait plusieurs instances de la même clé. Dans cet exemple, je cherche et retire le tableau avec la clé de 18.

Désolé pour le formatage - ça passe le message.

var items = [
  ["19", 1],
  ["18", 2],
  ["20", 3]
];

//console.log(items);
document.getElementById("a").innerHTML = items;

for (var i = 0; i < items.length; i++) {
  if (items[i][0] == "18") {
    items.splice(i, 1);
  }
}

//console.log(items);
document.getElementById("b").innerHTML = items;
<p>Before</p>
<div id='a'></div>

<p>After</p>
<div id='b'></div>

2

Vous avez ici un exemple visuel de tableau bidimensionnel avec bouton de suppression de ligne (suppression par ID) + aperçu jQuery de la table. J'espère que cela peut être utile!

JS DELETE ROW from Bidimensional ARRAY + Show on jQuery Cart Tablehttps://jsbin.com/xeqixi/edit?html,js,output

1
gtamborero

Appelez simplement la méthode splice(4, 1), lorsque 4 correspond au numéro de ligne et 1 au nombre de lignes à supprimer - 

twoDimensionalArray.splice(4, 1); // remove 4th row

De plus, shift() et pop() sont des méthodes très pratiques qui suppriment les première et dernière lignes en conséquence - 

twoDimensionalArray.shift(); // to remove first row
twoDimensionalArray.pop(); // to remove last row
0
simonbor