簡體   English   中英

從JavaScript中的2D數組中選擇2D數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM