如何删除嵌套数组中的最后一个索引[重复]

Posted

技术标签:

【中文标题】如何删除嵌套数组中的最后一个索引[重复]【英文标题】:How to remove the last index in nested array [duplicate] 【发布时间】:2021-05-15 22:09:22 【问题描述】:
let array=[
  [
    "Test1",
    "4",
    "160496"
  ],
  [
    "Test2",
    "6",
    "38355"
  ],
  [
    "Test3",
    "1",
    "1221781"
  ],
  [
    "Test4",
    "3",
    "124315"
  ],
  [
    "Test5",
    "5",
    "29509"
  ],
  [
    "Test6",
    "7",
    "47742"
  ],
  [
    "Test7",
    "2",
    "231034"
  ]
]

我只需要数组数组中的前两个索引 例如:

[["Test1","4"],["Test2","6"],["Test3","1"],["Test4","3"],["Test5","5"],["Test6","7"],["Test7","2"]]

【问题讨论】:

到目前为止你尝试了什么? 你可能想在每个元素上 map slice @BrianMcCutchon:切片和拼接 array.slice(0,2)。使用这个 【参考方案1】:

let array=[
  [
    "Test1",
    "4",
    "160496"
  ],
  [
    "Test2",
    "6",
    "38355"
  ],
  [
    "Test3",
    "1",
    "1221781"
  ],
  [
    "Test4",
    "3",
    "124315"
  ],
  [
    "Test5",
    "5",
    "29509"
  ],
  [
    "Test6",
    "7",
    "47742"
  ],
  [
    "Test7",
    "2",
    "231034"
  ]
];

array.forEach(x=>
  (x.splice((x.length-1), 1))?x:false
);
 console.log(array);

【讨论】:

array.map反正创建了一个新数组,那我们为什么要干扰原始数组呢?还有为什么这个答案在没有任何评论的情况下被否决了?有什么理由吗? @Nitheesh 您可能用第一个问题回答了最后两个问题。 @VLAZ 对不起?没听懂 @Nitheesh 你的最后两个问题是“为什么这个答案在没有任何评论的情况下被否决?有什么理由吗?”我认为答案是你的第一个问题:“array.map 无论如何都会创建一个新数组,那我们为什么要干扰原始数组呢?"【参考方案2】:

使用array.map 从现有数组生成新数组的托盘

const array = [
  ["Test1", "4", "160496"],
  ["Test2", "6", "38355"],
  ["Test3", "1", "1221781"],
  ["Test4", "3", "124315"],
  ["Test5", "5", "29509"],
  ["Test6", "7", "47742"],
  ["Test7", "2", "231034"]
];
const newArray = array.map(item => [item[0], item[1]]);
console.log(newArray);

【讨论】:

【参考方案3】:

我假设您不想更改原始 array 变量并且只想删除最后一个索引,无论内部数组有多长,以下解决方案可能会有所帮助。

let array=[
  [
    "Test1",
    "4",
    "160496"
  ],
  [
    "Test2",
    "6",
    "38355"
  ],
  [
    "Test3",
    "1",
    "1221781"
  ],
  [
    "Test4",
    "3",
    "124315"
  ],
  [
    "Test5",
    "5",
    "29509"
  ],
  [
    "Test6",
    "7",
    "47742"
  ],
  [
    "Test7",
    "2",
    "231034"
  ]
]

const newArray = array.map(innerArray => innerArray.slice(0, -1));

console.log(newArray);

【讨论】:

【参考方案4】:

这将遍历您的数组并删除每个嵌套数组的最后一个元素

for (let nestedArray of array) 
    let lastIndex = nestedArray.length - 1
    nestedArray.splice(lastIndex, 1)

在此处了解拼接:https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Global_Objects/Array/splice

【讨论】:

以上是关于如何删除嵌套数组中的最后一个索引[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何删除数组中的最后一个逗号和空格? Java [重复]

java中 如何在一个数组中删除里面的元素

如何使用pop函数删除ruby中数组的第零索引[重复]

如何在js中删除数组的最后一个元素[重复]

取消选择数据表行后如何正确删除数组中的索引或值?

js数组元素怎样删除最后一个元素