一維數組:
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;
}