仅来自 2d javascript 数组的特定“列”

Only specific 'columns' from a 2d javascript array

本文关键字:数组 2d javascript      更新时间:2023-09-26

我在js中有一个数组:

myArray = [['1','2','3'],['4','5','6'],['7','8','9']];

如何生成这样的数组:

myAlteredArray = [['2','3'],['5','6'],['8','9']];

我基本上想从数组中排除第一

快速解决方案

最简单的方法是使用 mapslice .

var subsections = myArray.map(function (subarray) {
    return subarray.slice(1)
})

您还可以通过执行以下操作以所需的任何方式操作小节:

var subsections = myArray.map(function (subarray) {
    var subsection = subarray.slice(1)
    subsection[1] = parseInt(subsection[1], 10) // parse index 1 in base 10
    return subsection
})

Array.prototype.map

myArray.map(callback)myArray中的每个元素执行callback,并返回一个由所有返回值组成的新数组。例如:

[1, 2, 3].map(function (number) { return 10 - number })

将返回[9, 8, 7]并保持原始数组不变。

Array.prototype.slice

myArray.slice(start, [end])将在新数组中返回myArray子节。如果只传递 start ,则假定end数组的末尾。例如:

['dogs', 'cats', 'fish', 'lizards'].slice(2) == ['fish', 'lizards']
['dogs', 'cats', 'fish', 'lizards'].slice(1, 3) == ['cats', 'fish']

有趣的事实:.slice()也适用于琴弦!

你可以这样做,但请注意,这将改变原始数组:

myArray = [['1','2','3'],['4','5','6'],['7','8','9']];
myArray.filter(function(i){
  return i.shift(); 
}); 
console.log(myArray);//logs  [["2", "3"], ["5", "6"], ["8", "9"]]

var myArray = [['1','2','3'],['4','5','6'],['7','8','9']];
var filteredArray = myArray.map(function(currArray,v){
  return currArray.slice(1);
})
console.log(filteredArray);

您应该遍历数组并使用每个子数组中的 slice 函数来提取第一个元素。

  var myArray = [['1','2','3'],['4','5','6'],['7','8','9']];
  for (var i = arr.length - 1; i >= 0; i--) {
    arr[i] = arr.slice(1);
  }