javascript - 数组数组的 JS 子集

标签 javascript arrays

如果我有一个数组数组如下:

[ [ A0 , B0 , C0 , D0 , E0 ],
  [ A1 , B1 , C1 , D1 , E1 ],
  [ A2 , B2 , C2 , D2 , E2 ]  ] // array of 3x5

我想像这样得到一个新的子集数组:

[ [ A0 , B0 , C0           ],
  [      B1 , C1 , D1      ],
  [           C2 , D2 , E2 ]  ]  //array of 3x3

这意味着 sliceLength = 3,但是如何做到这一点呢?使用拼接(如复制原始文件,然后删除不需要的部分)、切片和/或推送是否更好?

这是我到目前为止所拥有的,但语法看起来不对:

var newMega = [];
var sliceLength = 3;
for (var i=0; i<originalMatrix.length; i++) {
  var inner = originalMatrix.slice(i, sliceLength);  //  Here is the issue
  newMega.push(inner); 
}

看起来该语法会在整个 originalMatrix 上调用 slice,而不知道它应该对嵌套数组的哪个索引进行切片。应该是originalMatrix[i].slice(i, sliceLength)吗?

最佳答案

尝试对内部数组进行切片 (originalMatrix[i])。此外,您可能想调用 splice而不是 slice :

var newMega = [];
var spliceLength = 3;
for (var i=0; i<originalMatrix.length; i++) {
  var inner = originalMatrix[i].splice(i, spliceLength);
  newMega.push(inner); 
}

这是一个 demonstration .

关于javascript - 数组数组的 JS 子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052963/

相关文章:

javascript - 浏览器如何知道在哪里可以找到 socket.io?

javascript - javascript中的类方法不是函数

javascript - Raphael.js 图像填充不经常更新

c# - 获取数组长度

javascript - 将 jQuery UI Sortable 的顺序保存到 Backbone.js 集合

javascript - 尝试获取对象返回 Uncaught TypeError : Object function ParsePromise()

C - 下标值既不是数组也不是指针也不是 vector

javascript - AngularJS 基于 JSON 记录过滤数据

java - 为什么我的java程序每次都打印零?

c - 组合两个数组的键值对