[英]Remove the last 2 elements from each index in a Multidimensional Array
如何遍历多维数组并删除每个索引的最后 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>
$('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();
我想您需要从每个数组中删除最后 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;
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.