gpt4 book ai didi

javascript - “裁剪”二维数组?

转载 作者:搜寻专家 更新时间:2023-11-01 04:18:56 28 4
gpt4 key购买 nike

我正在寻找一种高效的方法来裁剪二维数组。考虑这个例子:

我有一个构成 100x100 网格的二维数组。我只想返回其中的一部分,60x60。这是一个“a”方法的示例,但我正在寻找指向执行此操作的最高性能方法的指针。

// Settings
var gridWidth = 100;
var gridHeight = 100;

// Populate Grid
var grid = [];

for(var i = 0; i<gridWidth; i++){
grid[i] = [];
for(var j = 0; j<gridHeight; j++){
grid[i][j] = 0;
}
}

// Crop Grid
var rect = {x:20,y:20,w:60,h:60};

var crop = [];
for(var i = rect.x; i<rect.x+rect.w; i++){
crop[i-rect.x] = [];
for(var j = rect.y; j<rect.y+rect.h; j++){
crop[i-rect.x][j-rect.y] = grid[i][j];
}
}

非常感谢任何想法......

约翰

最佳答案

这样试试:

crop = grid.slice(rect.x, rect.x+rect.w);
for(var i = 0; i<crop.length; i++){
crop[i] = crop[i].slice(rect.y, rect.y+rect.h);
}

请注意,数组的维度现在是 rect.w x rect.h,并且所有索引都由 rect.x 负偏移> 和 rect.y 分别。

关于javascript - “裁剪”二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13378359/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com