Poszukuję wysoce wydajnego sposobu przycinania tablicy dwuwymiarowej. Rozważmy ten przykład:"Przytnij" tablicę dwuwymiarową?
Mam dwuwymiarową tablicę, która tworzy siatkę 100x100. Chcę tylko zwrócić, 60x60. Oto przykład "sposobu", aby to zrobić, ale szukam wskazówek do najbardziej wydajnego sposobu robienia tego.
// 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];
}
}
Wszelkie myśli mile widziana ...
John
Czy chciałeś napisać 'crop [i] = crop [i] .splice (rect.y, rect.y + rect.h)'? W przeciwnym razie indeksy są po prostu usuwane z tablicy ... –
@FelixKling Yup, dzięki. Właściwie to po prostu zdałem sobie sprawę, że powinienem używać 'plaster', a nie' splice'. 'splice' zwraca usunięte elementy. –
Należy również wspomnieć, że zmodyfikuje to oryginalną tablicę ... –