如何在Javascript中对二维数组进行子集化?

时间:2013-07-02 08:54:43

标签: javascript arrays multidimensional-array

我一直在四处寻找,并且看到可以从像myArray[x][y]这样的二维数组中检索元素。然而,除了第一栏,我要做的就是采取一切措施。

在R中,我只会使用myArray[x,2:y],但我知道冒号在Javascript中是一个完全不同的运算符。

由于

2 个答案:

答案 0 :(得分:4)

如果您想在y尝试map

中取走所有内容
var y = myArray.map(function(v){ return v[1] });

不确定这是否等同于您发布的R ......

如果您想减去第一列,请尝试:

return v.slice(1);

答案 1 :(得分:3)

你的例子,你有myArray = [[1,2,3],[4,5,6],[7,8,9]],想要找回[[2,3],[5,6] ],[8,9]]

你可以这样做:

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

for(var i = 0; i < myArray.length; i++){
  results.push(myArray[i].slice(1,3));
}
//results === [[2,3],[5,6],[8,9]];

如果要在每个子数组的索引[0]之后对索引进行切片,那么您可能希望采用这种方法:

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

var sliceSubset = function(array){
  var results = [];
  for(var i = 0; i < array.length; i++){
    results.push(array[i].slice(1,array[i].length));
  }
  return results;
}

sliceSubset(myArray); //returns [[2,3],[5,6],[8,9]]
//works on different sized arrays as well
var myOtherArray = [[1,2,3,9],[4,5,6],[7,8,9]];
sliceSubset(myOtherArray); //returns [[2,3,9],[5,6],[8,9]]