对象整理,四个字段依次放到一个对象数组中

  AAA  表示(hotInfowg,hotInfons,hotInfopz,hotInfoaccess)

 整理成最初数据length相同,根据原数据before索引(0,1,2)对应的字段数据 AAA 放到一个新数组循环对应的索引值下

例如索引为0时,AAA 中的值放到after索引为0的tabList中顺序依次为(外观,内饰,配置,车品)字段对应,原数据没数据为[]表示,子内容itemNames可以为空,页中控制

前提,接口模式这 AAA 四个字段是一定会有的,没有的情况下为[]

before:

after:

 

子内容可以为空,在页面中过滤即可:

 

var data =[
    {
        "id": "1",
        hotInfoaccess: [ //车品
            {code: "", name: "车品1", price: "149000.00"},
             {code: "", name: "车11", price: "500.00"}
         ],
        hotInfons: [  //内饰
            {code: "EM", name: "内饰", price: "0.00"},
            {code: "W96", name: "内饰1", price: "720.00"},
            {code: "W96", name: "内饰1", price: "720.00"},
            {code: "W96", name: "内饰1", price: "720.00"},
        ],
        hotInfopz: [  //配置
            {code: "4BD", name: "配置11", price: 0},
            {code: "9S0", name: "配置1", price: "2000.00"}
        ],
        hotInfowg: [  //外观
            {code: "0Q", name: "外观1", price: "2000.00"},
        ]
    },
    {
        "id": "2",
        hotInfoaccess: [  //车品
            {code: "", name: "车品2", price: "149000.00"},
         ],
        hotInfons: [  //内饰
            {code: "EM", name: "内饰2", price: "0.00"},
        ],
        hotInfopz: [  //配置
            {code: "4BD", name: "配置2", price: 0},
        ],
        hotInfowg: [  //外观
            {code: "0Q", name: "外观2", price: "2000.00"},
        ]
    },
    {
        "id": "3",
        hotInfoaccess: [  //车品
            {code: "", name: "车品3", price: "149000.00"},
         ],
        hotInfons: [  //内饰
            {code: "EM", name: "内饰3", price: "0.00"},
        ],
        hotInfopz: [  //配置
            {code: "4BD", name: "配置3", price: 0},
        ],
        hotInfowg: [  //外观
            {code: "0Q", name: "外观3", price: "2000.00"},
        ]
    },
    {
        "id": "3",
        hotInfoaccess: [  //车品
            {code: "", name: "车品3", price: "149000.00"},
         ],
        hotInfons: [  //内饰
            {code: "EM", name: "内饰3", price: "0.00"},
        ],
        hotInfopz: [  //配置
            {code: "4BD", name: "配置3", price: 0},
        ],
        hotInfowg: [  //外观
            {code: "0Q", name: "外观3", price: "2000.00"},
        ]
    },
]
// 临时数组
var dataArr=[];
console.log(data,'before')
for(var j in data){
    dataArr.push({});
}
var idx ={
    'hotInfowg':0,
    'hotInfons':1,
    'hotInfopz':2,
    'hotInfoaccess':3,
}
 for(var i=0;i<data.length;i++){
    dataArr[i].id =data[i].id;
    //内层标签列表初始
    dataArr[i].tabList =[];  
    // console.log('循环:'+i) 
    // ,接口标签数据,列表内整理对应标签数据,标题
    lastData(i,data[i].hotInfowg,idx.hotInfowg,'外观');
    lastData(i,data[i].hotInfons,idx.hotInfons,'内饰');
    lastData(i,data[i].hotInfopz,idx.hotInfopz,'配置');
    lastData(i,data[i].hotInfoaccess,idx.hotInfoaccess,'车品');
 }
 console.log(dataArr,'整理后')
 console.log(JSON.parse(JSON.stringify(dataArr)) ,'理想效果')
function lastData(i,datas,tabName,title){
    dataArr[i].tabList.push({});
    dataArr[i].tabList[tabName].title = title;
    dataArr[i].tabList[tabName].itemNames =datas;
}
原文地址:https://www.cnblogs.com/liubingyjui/p/12931969.html