javascript - JavaScript 中二维数组的切片/部分

标签 javascript arrays node.js

我需要用二进制代码获取二维数组的切片。我需要指定我想从哪里开始以及在哪里结束。

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

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

最佳答案

您可以使用 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)

关于javascript - JavaScript 中二维数组的切片/部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51383031/

相关文章:

node.js - 是否可以使用 testcafe/node 模拟由单击按钮触发的函数的结果?

node.js - Jade 模板 HTML 括号撇号和多行问题

javascript - 谷歌登录api(platform.js)设置没有SameSite属性的cookie?

javascript - 如何避免使用 onkeypress ENTER (keyCode == 13) 事件刷新页面?

javascript - javascript中全局时钟的动态变化

c++ - 将二维数组与 0 进行比较 (c++)

c# - 如何使用 LINQ 将简单数组转换为其元素的连续对数组?

javascript - 从 jQuery 设置 $scope 变量的值

php - 尝试从 XML 中提取元素并将其放入数组中

node.js - firebase 统计在线用户并在全局计数器中更新