用javascript从二维数组中选择一个二维数组
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 );
请注意,没有边界检查或验证子数组实际上是子数组!
相关文章:
- 作为一个二维数组,从ajax接收
- 将一个二维数组传递给javascript中的函数
- Javascript:一个二维数组的字符串
- 将一个外部二维数组映射到另一个二维数组(javascript)
- Javascript使用map从一维数组创建一个二维数组
- 使用Java.lang.reflect.array.newInstance创建一个带有Java反射的二维数组
- 用Javascript创建一个给定宽度和高度的二维数组
- 用javascript从二维数组中选择一个二维数组
- 设置一个可变长度的二维数组
- 循环通过一个数组创建一个二维数组-循环不工作
- 移动一个二维数组
- 有没有一种方法可以将一个元素从二维数组内部移动到数组中的另一个位置,而不移动其他元素?
- 连接一个二维数组
- 将二维数组中的 ID 与另一个二维数组中的 ID 进行比较
- 如何缩进一个二维数组
- 从常规数组创建一个新的二维数组
- 如何从另一个二维数组中提取一个二维数组区域
- 在javascript中创建一个不同长度的自定义二维数组
- 将二维数组的元素复制到另一个二维数组中
- JavaScript:使用第一个“行”将二维数组转换为对象数组来定义属性