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;
}

 
 
 
 
綠色通道:  好文要頂  關注我 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM