How to remove row in 2d array in javascript

2020-06-03 01:09发布

问题:

How to remove row in two dimensional array in JavaScript with row number. If I want to delete all elements in row number 4 then how can do it??

回答1:

Here's an example of how to remove a row by using 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 ] ]


回答2:

Lets say you have an array 'arr' then you can remove full row by arr.splice(3,1);



回答3:

I realize this question is old, but it is one of the first results when searching for how to remove from a 2d (multidimensional) array in JS.

Here is what I used to delete the inner array based on a key of the inner array. It should continue to work if there were multiple instances of the same key. In this example, I am searching for, and removing the array with the key of 18.

Sorry about the formatting - it gets the point across.

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>



回答4:

Here you have a visual example of a bidimensional array with row deletion button (delete by ID) + jQuery preview of the table. I hope it can be usefull!

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



回答5:

Just call the splice(4, 1) method, when 4 is row number and 1 is number of rows to remove -

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

Also shift() and pop() are very handy methods which remove first and last rows accordingly -

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


回答6:

delete array[index]; array.length--;

In your case give index as 4 and execute the above statement and you need to manually reduce the length of array.