繁体   English   中英

从多维数组的每个索引中删除最后 2 个元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM