需要帮助的一个表
问题描述:
有2个选项,以显示两个阵列 我的数据库构建这样需要帮助的一个表
{
"_id" : ObjectId("58ecbb3be949603f122dfcc4"),
"work_id" : 651853,
"date" : ISODate("2017-04-10T00:00:00.000Z"),
"updated_at" : ISODate("2017-04-11T11:17:42.067Z"),
"name" : "John Doe",
"wage_type" : [
{
"_id" : ObjectId("58ecbb567f7ed00c2ca041b6"),
"type_ident" : "157",
"start_string" : "020000",
"start_time" : "02:00:00",
"total" : "08:00:00",
"end_time" : "09:59:59",
"end_string" : "095959",
"group" : "Wage Type<br/>",
"end_date" : "2017-04-10",
"type" : "Morning Hours",
"start_date" : "2017-04-10",
"time_sheet_ident" : "248288"
}
],
"campaign" : [
{
"_id" : ObjectId("58ecbb567f7ed00c2ca041b5"),
"type_ident" : "165",
"start_string" : "020000",
"start_time" : "02:00:00",
"total" : "08:00:00",
"end_time" : "09:59:59",
"end_string" : "095959",
"group" : "Campaign<br/>",
"end_date" : "2017-04-10",
"type" : "Waitter",
"start_date" : "2017-04-10",
"time_sheet_ident" : "248288"
}
],
"__v" : 0,
"created_at" : ISODate("2017-04-11T11:17:13.182Z")
}
但我发现2个困难 首先当一个工人都有这种结构基于用户
根据用户征战工资
John Doe | Morning Hours | 4.00-12.00
John Doe | Waiter | 4.00-8.00
John Doe | Bartender | 8.00-12.00
这是基于系列中的其他选项
Jim Dow | Morning Hours | 9.00-16.00
JIm Dow | Night Hours | 16-18
Jim Dow | Waitter | 9.00-18.00
自己能做什么到现在是当具有相同的开始时间和结束时间,所以我通过在运动他的工作
难以找到的部分是当他们是2不同的广告系列上的数据库john doe或2不同时间表上的jim dow
如果u能帮助我在此先感谢
答
解决它在我赢得
的(让我= 0; i < timesheets.length; i ++){
if (timesheets[i].wage_type !== 'none' && timesheets[i].wage_type || timesheets[i].campaign !== 'none' && timesheets[i].campaign) {
for (let j = 0; j < timesheets[i].wage_type.length; j++) {
for (let k = 0; k < timesheets[i].campaign.length; k++){
if(timesheets[i].wage_type[j].start_time == timesheets[i].campaign[k].start_time && timesheets[i].wage_type[j].end_time == timesheets[i].campaign[k].end_time && timesheets[i].wage_type[j].time_sheet_ident == timesheets[i].campaign[k].time_sheet_ident) {
const temp = {};
temp.ccms_id = timesheets[i].ccms_id;
temp.date = timesheets[i].date;
temp.name = timesheets[i].name;
temp.campaign = timesheets[i].campaign[k].type;
temp.type = timesheets[i].wage_type[j].type;
temp.start_time = timesheets[i].wage_type[j].start_time;
temp.end_time = timesheets[i].wage_type[j].end_time;
temp.total = timesheets[i].wage_type[j].total;
wages.push(temp);
}
else if (timesheets[i].wage_type[j].start_time <= timesheets[i].campaign[k].start_time && timesheets[i].wage_type[j].end_time >= timesheets[i].campaign[k].end_time){
const temp = {};
temp.ccms_id = timesheets[i].ccms_id;
temp.date = timesheets[i].date;
temp.name = timesheets[i].name;
temp.campaign = timesheets[i].campaign[k].type;
temp.type = timesheets[i].wage_type[j].type;
temp.start_time = timesheets[i].campaign[k].start_time;
temp.end_time = timesheets[i].campaign[k].end_time;
temp.total = timesheets[i].campaign[k].total;
wages.push(temp);
}
else if (timesheets[i].wage_type[j].start_time >= timesheets[i].campaign[k].start_time && timesheets[i].wage_type[j].end_time <= timesheets[i].campaign[k].end_time){
const temp = {};
temp.ccms_id = timesheets[i].ccms_id;
temp.date = timesheets[i].date;
temp.name = timesheets[i].name;
temp.campaign = timesheets[i].campaign[k].type;
temp.type = timesheets[i].wage_type[j].type;
temp.start_time = timesheets[i].wage_type[j].start_time;
temp.end_time = timesheets[i].wage_type[j].end_time;
temp.total = timesheets[i].wage_type[j].total;
wages.push(temp);
}
}
}
}
}
_“如果你能帮助我”_不是问题。请添加一个明确的问题陈述,并发布一个[mcve]。 – evolutionxbox
@evolutionxbox你还希望我向你展示什么 –
我之前的评论陈述了我认为会帮助更多人试着回答你的问题。 – evolutionxbox