// 有一个数组
let list = [
{treat_date: "2021-04-20", time_segment: "3"},
{treat_date: "2021-04-20", time_segment: "2"},
{treat_date: "2021-04-19", time_segment: "1"}
]
// 想吧他改成
let list =[
{'treat_date': "2021-04-20", "time_segment":["3", "2"]},
{"treat_date": "2021-04-19", "time_segment": "1"}
]
// 第一种方法
this.groupBy(list,'time_segment')
groupBy(list, name) {
return list.reduce(function (acc, obj) {
var key = obj[name];
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(obj);
return acc;
}, {});
},
// 第二种方法
let obj ={}
list.forEach(elem => {
if (obj[elem.treat_date]){
Array.isArray(obj[elem.treat_date]) || ( obj[elem.treat_date] = [obj[elem.treat_date]] );
obj[elem.treat_date].push(elem.time_segment)
}else{
obj[elem.treat_date] = elem.time_segment;
}
})
// 第三总方法
a.reduce((obj, value) => {
let i = obj.findIndex(elem => elem.treat_date == value.treat_date)
if(i == -1){
obj.push(value);
}else{
Array.isArray(obj[i].time_segment) || ( obj[i].time_segment = [ obj[i].time_segment ] );
obj[i].time_segment.push(value.time_segment)
}
return obj;
}, [])
//最后确定
handlerDatas(arr) {
let obj = {};
arr.forEach(item => {
let {treat_date} = item;
if (!obj[treat_date]) {
obj[treat_date] = {
timeList: [],
selectList: [], // 1,2,3
appoint_ids: {}
};
};
obj[treat_date].timeList.push(item.time_segment);
obj[treat_date].appoint_ids[item.time_segment] = item.appoint_id;
});
return obj;
},
this.dataArrayList = this.handlerDatas(data.list);
this.doctorDataList = Util.clone({}, this.dataArrayList);
const time_segment_info = [];
var idmaps = {};
for (var key in this.doctorDataList) {
idmaps = this.doctorDataList[key]['appoint_ids'];
this.doctorDataList[key].selectList &&
this.doctorDataList[key].selectList.forEach(x => {
time_segment_info.push({
treat_date: key,
time_segment: x,
id: idmaps[x],
});
});
};
数组中的对象判断里面的内容
最新推荐文章于 2023-06-04 23:18:16 发布