我已经创建了这个对象结构
[ [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday' ]
, [ [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
]
, [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
]
, [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
]
, [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
]
, [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
]
, [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
]
, [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
] ]
, [ [ 'morning', 'afternoon', 'evening' ]
, [ 'morning', 'afternoon', 'evening' ]
, [ 'morning', 'afternoon', 'evening' ]
, [ 'morning', 'afternoon', 'evening' ]
, [ 'morning', 'afternoon', 'evening' ]
, [ 'morning', 'afternoon', 'evening' ]
, [ 'morning', 'afternoon', 'evening' ]
] ]
使用下面的代码
var days = []
, slotstime = []
, slotsMonday = []
, slotsTuesday = []
, slotsWednesday = []
, slotsThursday = []
, slotsFriday = []
, slotsSaturday = []
, slotsSunday = []
, slots = []
, result = []
, mondayTime = []
, tuesdayTime = []
, wednesdayTime = []
, thursdayTime = []
, fridayTime = []
, saturdayTime = []
, sundayTime = []
;
if (this.MondayChecked) {
days.push('Monday');
mondayTime.push({
start_time: this.appSetting.morningStartTime,
end_time: this.appSetting.morningEndTime
});
mondayTime.push({
start_time: this.appSetting.afternoonStartTime,
end_time: this.appSetting.afternoonEndTime
});
mondayTime.push({
start_time: this.appSetting.nightStartTime,
end_time: this.appSetting.nightEndTime
});
slotsMonday.push('morning');
slotsMonday.push('afternoon');
slotsMonday.push('evening');
slotstime .push(mondayTime);
}
if (this.TuesdayChecked) {
days.push('Tuesday');
tuesdayTime.push({
start_time: this.appSetting.morningStartTime,
end_time: this.appSetting.morningEndTime
});
tuesdayTime.push({
start_time: this.appSetting.afternoonStartTime,
end_time: this.appSetting.afternoonEndTime
});
tuesdayTime.push({
start_time: this.appSetting.nightStartTime,
end_time: this.appSetting.nightEndTime
});
slotsTuesday.push('morning');
slotsTuesday.push('afternoon');
slotsTuesday.push('evening');
slotstime .push(tuesdayTime);
}
if (this.WednesdayChecked) {
days.push('Wednesday');
wednesdayTime.push({
start_time: this.appSetting.morningStartTime,
end_time: this.appSetting.morningEndTime
});
wednesdayTime.push({
start_time: this.appSetting.afternoonStartTime,
end_time: this.appSetting.afternoonEndTime
});
wednesdayTime.push({
start_time: this.appSetting.nightStartTime,
end_time: this.appSetting.nightEndTime
});
slotsWednesday.push('morning');
slotsWednesday.push('afternoon');
slotsWednesday.push('evening');
slotstime.push(wednesdayTime);
}
if (this.ThursdayChecked) {
days.push('Thursday');
thursdayTime.push({
start_time: this.appSetting.morningStartTime,
end_time: this.appSetting.morningEndTime
});
thursdayTime.push({
start_time: this.appSetting.afternoonStartTime,
end_time: this.appSetting.afternoonEndTime
});
thursdayTime.push({
start_time: this.appSetting.nightStartTime,
end_time: this.appSetting.nightEndTime
});
slotsThursday.push('morning');
slotsThursday.push('afternoon');
slotsThursday.push('evening');
slotstime.push(thursdayTime);
}
if (this.FridayChecked) {
days.push('Friday');
fridayTime.push({
start_time: this.appSetting.morningStartTime,
end_time: this.appSetting.morningEndTime
});
fridayTime.push({
start_time: this.appSetting.afternoonStartTime,
end_time: this.appSetting.afternoonEndTime
});
fridayTime.push({
start_time: this.appSetting.nightStartTime,
end_time: this.appSetting.nightEndTime
});
slotsFriday.push('morning');
slotsFriday.push('afternoon');
slotsFriday.push('evening');
slotstime .push(fridayTime);
}
if (this.SaturdayChecked) {
days.push('Saturday');
saturdayTime.push({
start_time: this.appSetting.morningStartTime,
end_time: this.appSetting.morningEndTime
});
saturdayTime.push({
start_time: this.appSetting.afternoonStartTime,
end_time: this.appSetting.afternoonEndTime
});
saturdayTime.push({
start_time: this.appSetting.nightStartTime,
end_time: this.appSetting.nightEndTime
});
slotsSaturday.push('morning');
slotsSaturday.push('afternoon');
slotsSaturday.push('evening');
slotstime .push(saturdayTime);
}
if (this.SundayChecked) {
days.push('Sunday');
sundayTime.push({
start_time: this.appSetting.morningStartTime,
end_time: this.appSetting.morningEndTime
});
sundayTime.push({
start_time: this.appSetting.afternoonStartTime,
end_time: this.appSetting.afternoonEndTime
});
sundayTime.push({
start_time: this.appSetting.nightStartTime,
end_time: this.appSetting.nightEndTime
});
slotsSunday.push( 'afternoon' );
slotsSunday.push( 'morning' );
slotsSunday.push( 'evening' );
slotstime .push( sundayTime );
}
slots .push( slotsMonday );
slots .push( slotsTuesday );
slots .push( slotsWednesday );
slots .push( slotsThursday );
slots .push( slotsFriday );
slots .push( slotsSaturday );
slots .push( slotsSunday );
result.push( days );
result.push( slotstime );
result.push( slots );
result of console variable
console.log(result);
但我想制作这样的动态结构
{ Days:
{ MONDAY:
{ Morning: { start_time: this.appSetting.morningStartTime }
, Afternoon: { start_time: this.appSetting.afternoonStartTime }
, Evening: { start_time: this.appSetting.nightStartTime }
}
, TUESDAY:
{ Morning: { start_time: this.appSetting.morningStartTime }
, Afternoon: { start_time: this.appSetting.afternoonStartTime }
, Evening: { start_time: this.appSetting.nightStartTime }
}
, WEDNESDAY:
{ Morning: { start_time: this.appSetting.morningStartTime }
, Evening: { start_time: this.appSetting.nightStartTime }
}
, THURSDAY:
{ Evening: { start_time: this.appSetting.nightStartTime }
}
, FRIDAY:
{ Morning: { start_time: this.appSetting.morningStartTime }
, Afternoon: { start_time: this.appSetting.afternoonStartTime }
, Evening: { start_time: this.appSetting.nightStartTime }
}
, SATURDAY:
{ Morning: { start_time: this.appSetting.morningStartTime }
, Afternoon: { start_time: this.appSetting.afternoonStartTime }
, Evening: { start_time: this.appSetting.nightStartTime }
}
, SUNDAY:
{ Morning: { start_time: this.appSetting.morningStartTime }
, Afternoon: { start_time: this.appSetting.afternoonStartTime }
, Evening: { start_time: this.appSetting.nightStartTime }
} } }
但是这个结构应该根据上述条件动态创建,以便我可以访问天数及其时段计时。
任何解决方案谢谢
使用方括号[],您可以动态分配属性名称。如果我正确理解你的问题,你可以做这样的事情。
var data = [ [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday' ]
, [ [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
]
, [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
]
, [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
]
, [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
]
, [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
]
, [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
]
, [ { start_time: '02:00', end_time: '06:00' }
, { start_time: '00:00', end_time: '00:00' }
, { start_time: '00:00', end_time: '00:00' }
] ]
, [ [ 'morning', 'afternoon', 'evening' ]
, [ 'morning', 'afternoon', 'evening' ]
, [ 'morning', 'afternoon', 'evening' ]
, [ 'morning', 'afternoon', 'evening' ]
, [ 'morning', 'afternoon', 'evening' ]
, [ 'morning', 'afternoon', 'evening' ]
, [ 'morning', 'afternoon', 'evening' ]
] ] ;
var days = data[0];
var times = data[1];
var partOfDays = data[2];
var newData = { Days : {}};
for(var dayIndex in days){
var day = {};
newData.Days[days[dayIndex]] = day;
for(var partOfDayIndex in partOfDays[dayIndex]){
day[partOfDays[dayIndex][partOfDayIndex]] = {
start_time: times[dayIndex][partOfDayIndex].start_time
};
}
}
console.log(newData);