使用javascript创建多个2D对象数组,其中对象具有相同的属性

使用javascript创建多个2D对象数组,其中对象具有相同的属性,javascript,arrays,object,Javascript,Arrays,Object,如何创建两个2-darray,其中数组的每个元素都是具有属性的对象。两个数组的大小不同,每个单元格的属性也不同 var gridcell = []; var regionalcell = []; 到目前为止,我已经这样做了,它的工作,但它没有效率,我不想重复代码。如果你们能帮忙,那就太好了 在这两个函数中,“w,h,r,c”的值是不同的 function createCellArray(w, h,r,c) { for (j = 0; j < r; j++) {

如何创建两个2-darray,其中数组的每个元素都是具有属性的对象。两个数组的大小不同,每个单元格的属性也不同

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
            }
        }
    }
}
函数(w,h,r,c) { 对于(j=0;j我不太清楚您的问题是什么。。。您想对代码进行因式分解吗

在这种情况下,只需创建一个返回公共数组的函数:

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);
函数(w、h、r、c)
{
var-ray=[];
对于(j=0;j
实际上,它似乎很有效,我想我是在尝试使用全局数组,而不是您使用的本地数组