将
这种格式转换成下面这种
let arr = [{
profession: "专业1",
work_type: "工种1",
train_time: "2020/10/26-2020/10/26"
},
{
profession: "专业1",
work_type: "工种1",
train_time: "2020/10/27-2020/10/27"
},
{
profession: "专业1",
work_type: "工种3",
train_time: "2020/10/26-2020/10/26"
},
{
profession: "专业1",
work_type: "工种3",
train_time: "2020/10/27-2020/10/27"
},
{
profession: "专业2",
work_type: "工种2",
train_time: ""
}]
let arr2 = []
let arr3=[]
for (let i = 0; i < arr.length; i++) {
if (arr2.length==0) {
//第一条
console.log("2")
arr2.push({
profession: arr[i].profession,
work_type: arr[i].work_type,
workType: [{
workTypeName: arr[i].work_type,
workTime:[]
}]
})
//时间为空
if(arr[i].train_time.indexOf("-")>-1){
arr2[i].workType[0].workTime.push({
trainStartTime:arr[i].train_time.split("-")[0],trainEndTime:arr[i].train_time.split("-")[1]})
}
}else{
// 遍历arr2
console.log("3")
for(let j=0;j<arr2.length;j++){
if(arr2[j].profession.indexOf(arr[i].profession)>-1){
if(arr2[j].work_type.indexOf(arr[i].work_type)>-1){
//相同 插时间
if(arr[i].train_time.indexOf("-")>-1){
//插第几条
for (let k=0;k<arr2[j].workType.length;k++){
if(arr2[j].workType[k].workTypeName==arr[i].work_type){
arr2[j].workType[k].workTime.push({
trainStartTime:arr[i].train_time.split("-")[0],trainEndTime:arr[i].train_time.split("-")[1]})
}
}
}
}else{
//插type
arr2[j].workType.push({
workTypeName: arr[i].work_type,
workTime:[]
})
if(arr[i].train_time.indexOf("-")>-1){
arr2[j].workType[arr2[j].workType.length-1].workTime.push({
trainStartTime:arr[i].train_time.split("-")[0],trainEndTime:arr[i].train_time.split("-")[1]})
}
// arr2[j].workType.concat(arr[i].work_type)
arr2[j].work_type=arr2[j].work_type+','+arr[i].work_type
}
console.log(j)
}else{
//没有这条
console.log("通天塔")
arr3.push({
profession: arr[i].profession,
work_type: arr[i].work_type,
workType: [{
workTypeName: arr[i].work_type,
workTime:[]
}]
})
//时间为空
console.log(arr2)
if(arr[i].train_time.indexOf("-")>-1){
console.log("不为空")
arr2[arr2.length-1].workType[0].workTime.push({
trainStartTime:arr[i].train_time.split("-")[0],trainEndTime:arr[i].train_time.split("-")[1]})
}
}
}
}
}
console.log(arr.length,arr2.concat(arr3))