web-dev-qa-db-ja.com

JavaScriptで2D配列の行を削除する方法

JavaScriptで行番号のある2次元配列の行を削除する方法。行番号4のすべての要素を削除するには、どうすればよいですか?

12
Rajani Rampelli

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

配列「arr」があるとすると、arr.splice(3,1)によって行全体を削除できます。

5
Vaibhav

私はこの質問が古いことに気づきましたが、JSで2D(多次元)配列から削除する方法を検索したときの最初の結果の1つです。

これは、内部配列のキーに基づいて内部配列を削除するために使用したものです。同じキーの複数のインスタンスがあった場合でも機能し続けるはずです。この例では、キー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>
2

ここに、行削除ボタン(IDで削除)+テーブルのjQueryプレビューがある2次元配列の視覚的な例があります。お役に立てれば幸いです。

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

1
gtamborero

4が行番号で1が削除する行数の場合、splice(4, 1)メソッドを呼び出すだけです-

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

また、shift()pop()は、最初と最後の行を適宜削除する非常に便利なメソッドです-

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

array [index]を削除します。 array.length--;

あなたの場合、インデックスを4にして上記のステートメントを実行すると、配列の長さを手動で減らす必要があります。

0
Rohith Gupta