JavaScript中的二维数组的切片/剖分​​

时间:2018-07-17 13:45:38

标签: javascript arrays node.js

我需要使用二进制代码对2d数组进行切片。我需要指定我想从哪里开始以及结束要在哪里。

现在我有了这段代码,但是我很确定这是错误的:

var slice = [[]];
var endx = 30;
var startx = 20;
var starty = 10;
var end = 20;
for (var i = sx, a = 0; i < json_data.length, a < ex; i++, a++) {
  for (var j = sy, b = 0; j < json_data[1].length, b < ey; j++, b++)
    slice[a][b] == json_data[i][j];
}

json_data是以下格式的数组:

[0,0,0,0,0,1,...],[1,1,0,1,1,0...],...

它是600x600

1 个答案:

答案 0 :(得分:0)

您可以使用slice()map()有效地做到这一点。

array.slice(s, e)将从s开始并在e之前结束数组的一部分。因此,您可以先对数组进行切片,然后在切片上进行映射,并对每个子数组进行切片。例如,要获取从行索引1到2(包括行索引)和列索引2到3的部分,您可以:

let array = [
  [1, 2, 3, 4],
  [5, 6, 7, 8],
  [9, 10, 11, 12],
  [13, 14, 15, 16]
]
let sx = 1
let ex = 2
let sy = 2
let ey = 3

let section = array.slice(sx, ex + 1).map(i => i.slice(sy, ey + 1))
console.log(section)