我对如何根据其他2个阵列正确制作数组感到困惑。
我有一个这样的数组:
let date = [1522303200000, 1522389600000, 1522476000000]
,第二个数组看起来像这样:
let people = [
{
"id": 0,
"name": "Sophia Mason",
"biography": "Lorem ...",
"availability": [
{
"date": 1522303200000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
},
{
"date": 1522389600000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
},
{
"date": 1522476000000,
"times": ["10:00 am", "2:30 pm", "5:00 pm"]
},
{
"date": 1522735200000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
}
]
},
{
"id": 1,
"name": "Brandon Hampton",
"biography": "Lorem ...",
"availability": [
{
"date": 1522303200000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
},
{
"date": 1522476000000,
"times": ["10:00 am", "2:30 pm", "5:00 pm"]
},
{
"date": 1522648800000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
},
{
"date": 1522735200000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
}
]
}
]
我正在尝试创建一个数组,该数组的日期为数组中每个索引的顶级,然后是每天相应的人,如果该日期有可用性。我在想类似的事情:
let calendar = [
[
1522303200000,
"photographers": [
{
"id": 0,
"name": "Sophia Mason",
"biography": "Lorem ...",
"availability": [
{
"date": 1522303200000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
},
{
"date": 1522389600000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
},
{
"date": 1522476000000,
"times": ["10:00 am", "2:30 pm", "5:00 pm"]
},
{
"date": 1522735200000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
}
]
},
{
"id": 1,
"name": "Brandon Hampton",
"biography": "Lorem ...",
"availability": [
{
"date": 1522303200000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
},
{
"date": 1522476000000,
"times": ["10:00 am", "2:30 pm", "5:00 pm"]
},
{
"date": 1522648800000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
},
{
"date": 1522735200000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
}
]
}
]
],
[
1522303200000,
"photographers": [
{
"id": 0,
"name": "Sophia Mason",
"biography": "Lorem ...",
"availability": [
{
"date": 1522303200000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
},
{
"date": 1522389600000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
},
{
"date": 1522476000000,
"times": ["10:00 am", "2:30 pm", "5:00 pm"]
},
{
"date": 1522735200000,
"times": ["9:00 am", "2:30 pm", "5:00 pm", "6:00 pm"]
}
]
}
]
],
...
]
但我现在仍然坚持如何解决这个问题。我可能已经看了很长时间才能真正地围绕这个。
我看了以下几个地方以获得一些想法:
任何帮助将不胜感激!
答案 0 :(得分:0)
此功能
createCalendar(date, people) {
const calendar = {};
date.forEach(element => {
calendar[element] = [];
people.forEach(person => {
if (person.availability.map(item => item.date).includes(element)) {
calendar[element].push(person);
}
})
})
return calendar;
}

创建一个与您想到的数据结构类似的数据结构。 calendar
是一个对象,其中每个键都是date
,相应的值是一个数组,其中包含该日期可用性的所有people
。