如何遍历多维数组并删除每个索引的最后2个元素?
因此,在此示例中,我将从每个索引中删除Edit
和Delete
。我尝试了pop和slice方法,但并没有完全得到所需的结果
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<table class="table table-bordered" id="table_id">
<thead>
<tr>
<th>Name</th>
<th>col-1</th>
<th>col-2</th>
<th>col-3</th>
<th>col-4</th>
</tr>
</thead>
<tbody>
<tr>
<td>John</td>
<td>1</td>
<td>2</td>
<td><button type="button" class="btn btn-primary" id="edit_btn">Edit</button></td>
<td><button type="button" class="btn btn-danger" id="delete_btn">Delete</button></td>
</tr>
<tr>
<td>Mary</td>
<td>5</td>
<td>6</td>
<td><button type="button" class="btn btn-primary" id="edit_btn">Edit</button></td>
<td><button type="button" class="btn btn-danger" id="delete_btn">Delete</button></td>
</tr>
<tr>
<td>July</td>
<td>9</td>
<td>10</td>
<td><button type="button" class="btn btn-primary" id="edit_btn">Edit</button></td>
<td><button type="button" class="btn btn-danger" id="delete_btn">Delete</button></td>
</tr>
</tbody>
</table>
</div>
<script>
var table_row = [];
var myArray = [];
$('#table_id tr').each(function(index, tr) {
table_row = $('td', tr).map(function(index, td) {
return $(td).text();
});
// Here table_row will contain an array of all td values for the current row:
// like ['value 1', 'value 2', 'value 3']
myArray.push(table_row);
});
console.log(myArray);
</script>
</body>
</html>
答案 0 :(得分:2)
$('td', tr).map()
返回一个jQuery集合,而不是一个数组,但是它是一个类似于数组的对象。您可以调用.get()
来获取一个真实的数组。
要删除最后两个元素,可以使用.slice()
。给它一个负的结束索引从数组的末尾开始计数。
所以改变
myArray.push(table_row);
到
myArray.push(table_row.get().slice(0, -2));
您还可以更改循环以仅处理每行的前3个td
。
var table_row = $('td:lt(3)', tr).map(...).get();
答案 1 :(得分:0)
我想您需要从每个数组中删除最后2个索引。 这是一个示例:
样本数组:
const a = [
[1,2,3,4,5,6,7,8],
[1,2,3,4,5,6,7,8],
[1,2,3,4,5,6,7,8],
[1,2,3,4,5,6,7,8],
[1,2,3,4,5,6,7,8],
[1,2,3,4,5,6,7,8],
]
然后对数组执行此操作:
const list = a.map(item => {
const updatedList = item.splice(0, item.length - 2);
return updatedList;
})