前端,改写数组

本篇博客是2021年的第一篇博客:在使用vant-swiper的时候,需要一页显示三条数据,这时后台返回的数据就不是我所需要的,所以我需要整合数据。

 

 

 

第一:这是后台给我的格式

{
  "food":[
    {"name":"馒头","price":"12"},
    {"name":"煎饼","price":"12"},
    {"name":"花卷","price":"12"},
    {"name":"玉米","price":"12"},
    {"name":"面条","price":"10"}
  ]
}

第二:这是我所需要的数据

{
  "food":[
    [ {"name":"馒头","price":"12"},
      {"name":"煎饼","price":"12"},
      {"name":"玉米","price":"12"}
     ],
     [{"name":"花卷","price":"12"},
      {"name":"面条","price":"10"}
     ]
  ]
}

第三步:整合数据(刚开始使用vue3.0+ts的写法很多地方不会使用)

const itemFuc = (data: any)=>{
      let productItems: any = [] //子数组
      const productDatas: any = []//父数组
      data.map((item: string,index: number)=>{
        window.console.log(item)
        if((index+1)%3 !== 0){ //只有不等于0的时候才向子数组中放对象
          productItems.push(item)
          // 假设数组有7或者八条数据,不是3的倍数则进行以下操作
          if(data.length-productDatas.length*3<3 && data.length-productDatas.length*3!==0){
            if(productDatas[productDatas.length-1].length == 3){
              productDatas.push(productItems)
            }
          }
        }else{
          //当index+1 == 3或者3的倍数需要向子数组中添加数据,这时候子数组有三条数据
          productItems.push(item)
          //当子数组有3条数据的时候将子数组添加到父数组
          productDatas.push(productItems)
          productItems = []
        }
      })
      return productDatas
    }

 

posted @ 2021-01-28 15:51  943987243  阅读(123)  评论(0编辑  收藏  举报