2014-06-11 46 views
0

如何創建兩個2-DArrays,其中數組的每個元素都是具有屬性的對象。兩個陣列的大小都不相同,每個單元的屬性都不相同。使用javascript創建多個2D對象數組,其中對象具有相同的屬性

var gridcell = []; 
var regionalcell = []; 

到目前爲止,我已經做到了這一點,它的工作原理,但它效率不高,我不想重複代碼。如果你們能夠幫忙,那將會很棒。

在這兩個函數中,「w,h,r,c」的值是不同的。

function createCellArray(w, h,r,c) 
{ 
    for (j = 0; j < r; j++) 
    { 
     gridcell[j] = []; 
     for (i = 0; i < c; i++) 
     { 
     gridcell[j][i] = 
      { 
       "x1": w * i, 
       "y1": h * j, 
       "x2": w * (i + 1), 
       "cell_color": null, 
       "y2": h * (j + 1), 
       "name": (i + 1 * (j * 10)) + 1 
      } 
     } 
    } 
} 


function createRegionalCellArray(w, h, r, c) { 
    for (j = 0; j < r; j++) { 
     regional[j] = []; 
     for (i = 0; i < c; i++) { 
      regional[j][i] = 
      { 
       "x1": w * i, 
       "y1": h * j, 
       "x2": w * (i + 1), 
       "cell_color": null, 
       "y2": h * (j + 1), 
       "name": (i + 1 * (j * 10)) + 1 
      } 
     } 
    } 
} 

回答

2

我不確定真的明白你的問題是什麼......你想分解你的代碼?

在這種情況下,才使返回您共同數組的函數:

function returnCellArray(w, h, r, c) 
{ 
    var cellArray = []; 
    for (j = 0; j < r; j++) 
    { 
     cellArray[j] = []; 
     for (i = 0; i < c; i++) 
     { 
     cellArray[j][i] = 
      { 
       "x1": w * i, 
       "y1": h * j, 
       "x2": w * (i + 1), 
       "cell_color": null, 
       "y2": h * (j + 1), 
       "name": (i + 1 * (j * 10)) + 1 
      } 
     } 
    } 

    return cellArray; 
} 

gridCell = returnCellArray(w1, h1, r1, c1); 
regionalcell = returnCellArray(w2, h2, r2, c2); 
+0

我嘗試這樣做,它不會因爲某些原因工作。 – Happy

+0

@快樂:什麼不行?它使你的代碼相同... –

+0

其實它似乎工作,我想我試圖使用全局數組而不是本地,因爲您已經使用cellArray – Happy

相關問題