[英]Select a 2D array from a 2D array in javascript
我想从一个大型2D数组中选择一个2D数组,我知道如何使用for循环来完成此操作,但我想知道是否有更有效的方法来实现这一点。
例:
[0,0,0,0,0,1,0]
[0,0,0,3,0,1,0]
[0,0,0,0,0,1,0]
[0,0,0,0,0,1,0]
我想从这个数组创建一个新的数组,其中包含
[0.0.1]
[3.0.1]
[0.0.1]
那么,有没有比使用一些简单的for循环更好的方法来创建第二个数组了?
与for循环方法相比,我不能说这种技术的相对效率,但是您可以将javascript数组的slice
函数用于第二维(不是第一维)。
Array.prototype.extract2d = function extract2d( x1, y1, x2, y2 )
{
var result = [];
for ( var y = y1; y <= y2; y++ )
{
result.push( this[y].slice( x1, x2 ) );
}
return result;
}
因此,您可以这样做:
var grid =
[
[0,0,0,0,0,1,0],
[0,0,0,3,0,1,0],
[0,0,0,0,0,1,0],
[0,0,0,0,0,1,0]
];
var subgrid = grid.extract2d( 3, 0, 5, 2 );
请注意,没有边界检查或验证子数组实际上是子数组!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.