我正在尋找一種高性能的方式來裁剪一個二維數組。考慮這個例子:'裁剪'二維數組?
我有一個二維數組,構成一個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 [i] = crop [i] .splice(rect.y,rect.y + rect.h)'?否則,索引只是從數組中刪除... –
@FelixKling燁,謝謝。其實,我只是意識到我應該使用'slice',而不是'splice'。 'splice'返回移除的元素。 –
你還應該提到,這將修改原始數組... –