javascript一维数组转二维数组

一维数组:

var aLi=oList.getElementsByTagName("li"); //获取到页面上的li,是一维数组,其中保存了N个li对象

下面函数,将aLi一维数组转换成了iRows行,iCeils列的二维数组,用来表示平面上的二维坐标

var oList=document.getElementById("list"); //获取ul列表

var iRows=oList.offsetHeight/aLi[0].offsetHeight; //用ul的总高度除以第0个li的高度,获得这个ul中li的行数
var iCeils=aLi.length/iRows;  //总个数除以行数获取li的列数
//console.log(iRows+'||'+iCeils);
var oXyLi=setXy(aLi,iRows,iCeils);  // oXyLi为转换后的二维数组

//一维数组生成二维数组
var num = 0;
function setXy(objs,iRows,iCeils)
{
var arr=[];
for(var i=0;i<iRows;i++)
{
var arr2=[];
for(var j=0;j<iCeils;j++)
{
objs[i*iCeils+j].xIndex=j; //添加索引序号
objs[i*iCeils+j].yIndex=i;
objs[i*iCeils+j].innerHTML=num; //i+'||'+j
objs[i*iCeils+j].style.backgroundPosition = (-j*58)+'px '+ (-i*60)+'px';
arr2.push(objs[i*iCeils+j]); //第j个单元格推入数组中保存
num++;
}
arr.push(arr2);
}
return arr;
}

posted @ 2013-11-02 13:48  鱼求雨  阅读(318)  评论(0编辑  收藏  举报