问题
遇到问题:在渲染界面时,我们需要的是二维数组,但是后台给我传过来的数据是一维数组,这时,我们需要将一维数组转换为二维数组。
这种情况一般在我们需要将后台传过来的数据进行分页显示时使用
技术
循环+splice
splice
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目
注释:该方法会改变原始数组。
举例:
1.先根据后台拿到的一维数组计算出要分几页,这里每页显示3条数据
首先将我们要循环的数据初始定义为:listdata
//data 后台传过来的数据
var num=Math.ceil(data.length/3)
//得到总的分页数num
2.根据拿到的num页数进行循环,并且每循环一次从data中截取3条数据,存到listdata中
for(var i=0;i<num;i++){
listdata.push(data.splice(0,3))
}
这样操作之后,就会将data中的数据变为二维数组存到listdata中了。
效果如:
data:[{name:"lisi",age:22},{name:"lisi",age:22},{name:"lisi",age:22},{name:"lisi",age:22},{name:"lisi",age:22},{name:"lisi",age:22},{name:"lisi",age:22},{name:"lisi",age:22},]
这里数据少长度为8,设定每页存三个,将会生成三页,
listdata:[
[{name:"lisi",age:22},{name:"lisi",age:22},{name:"lisi",age:22}],
[{name:"lisi",age:22},{name:"lisi",age:22},{name:"lisi",age:22}],
[{name:"lisi",age:22},{name:"lisi",age:22}]
]