您的位置:首页 > Web前端 > JavaScript

javascript 一维数组转换为二维数组

2013-11-02 13:53 323 查看
一维数组:

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: