js将一维数组重组为二维数组

问题

遇到问题:在渲染界面时,我们需要的是二维数组,但是后台给我传过来的数据是一维数组,这时,我们需要将一维数组转换为二维数组。
这种情况一般在我们需要将后台传过来的数据进行分页显示时使用

技术

循环+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}]
]

猜你喜欢

转载自blog.csdn.net/LiuPangZi6/article/details/102594532