如何在 javascript 中删除 2d 数组中的行

How to remove row in 2d array in javascript

本文关键字:数组 2d 删除 javascript      更新时间:2023-09-26

如何在JavaScript中删除带有行号的二维数组中的行。如果我想删除第 4 行中的所有元素,那么该怎么做?

下面是如何使用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 ] ]

假设你有一个数组'arr',那么你可以按arr.splice(3,1)删除整行;

我意识到这个问题很老,但在搜索如何在 JS 中从 2d(多维)数组中删除时,它是第一个结果之一。

这是我用来根据内部数组的键删除内部数组的方法。如果同一密钥有多个实例,它应该继续工作。在此示例中,我正在搜索并删除键为 18 的数组。

对格式感到抱歉 - 它明白了重点。

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>

只需调用 splice(4, 1) 方法,当 4 是行号,1 是要删除的行数时 -

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

此外,shift()pop()是非常方便的方法,可以相应地删除第一行和最后一行 -

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

这里有一个二维数组的可视化示例,其中包含行删除按钮(按 ID 删除)+ 表的 jQuery 预览。我希望它能有用!

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

delete array[index];数组长度--;

在您的情况下,将索引设置为 4 并执行上述语句,您需要手动减少数组的长度。