从二维数组中的每个数组中删除特定元素

Removing a specific element from each array in a 2D array

我正在尝试使用数组从每个数组中删除第 3 个元素。

我有:

data =
[["51.9435","-4.26697","450","125"],
["51.9437","-4.26717","450","125"],
["51.9438","-4.26733","450","125"],
["51.944","-4.26748","450","125"]]

我需要的是:

data =
[["51.9435","-4.26697","125"],
["51.9437","-4.26717","125"],
["51.9438","-4.26733","125"],
["51.944","-4.26748","125"]]

我假设使用 splice 但想不出如何将它与二维数组一起使用。

对每个子数组使用splice

const data = [["51.9435","-4.26697","450","125"],
              ["51.9437","-4.26717","450","125"],
              ["51.9438","-4.26733","450","125"],
              ["51.944","-4.26748","450","125"]]

for( const array of data )
   array.splice(2, 1)
   
console.log(data)

编辑:为了保持原始数据的完整性,您需要在拼接之前复制数组。

const data = [["51.9435","-4.26697","450","125"],
              ["51.9437","-4.26717","450","125"],
              ["51.9438","-4.26733","450","125"],
              ["51.944","-4.26748","450","125"]]

const converted = data.map(function(array){
   const copy = array.slice()
   copy.splice(2, 1)
   return copy
})

console.log(data)
console.log(converted)

您可以使用以下代码片段

data =[["51.9435","-4.26697","450","125"],
       ["51.9437","-4.26717","450","125"],
       ["51.9438","-4.26733","450","125"],
       ["51.944","-4.26748","450","125"]];
data.map( (arr) => {arr.splice(2,1);});
console.log(data);

您可以将 .map().splice() 一起使用。

  • .map() 使用从回调函数返回的值创建一个新数组。
  • .splice() 从数组中删除一个或多个元素。

演示:

let data =[
  ["51.9435","-4.26697","450","125"],
  ["51.9437","-4.26717","450","125"],
  ["51.9438","-4.26733","450","125"],
  ["51.944","-4.26748","450","125"]
];

let removeIndex = (array, index) => array.map(a => (a.splice(index, 1), a));

console.log(removeIndex(data, 2));

文档:

在这种情况下,您可以使用 splice 提供要删除的索引的索引 21 如果您只想删除一个元素。

data = [
  ["51.9435", "-4.26697", "450", "125"],
  ["51.9437", "-4.26717", "450", "125"],
  ["51.9438", "-4.26733", "450", "125"],
  ["51.944", "-4.26748", "450", "125"],
]

data.forEach( arr => {
// loop over all arrays to get the individual ones. 
  arr.splice(2 , 1) // then call splice. 
})

console.log(data)