Maison > Questions et réponses > le corps du texte
J'ai deux tableaux différents :
accomodation: [ { id: 1, name: "Senator Hotel Fnideq", address: "Route de Ceuta, 93100 Fnidek, Morocco", checkin: "September 1", fullCheckinDate: "2021-09-01", checkout: "September 3", fullCheckoutDate: "2021-09-03", nights: 2, mealplan: "Breakfast,Lunch" }, { id: 2, name: "Kabek Morocco Hotel", address: "Omis Juy, 93100 Kabek, Morocco", checkin: "September 3", fullCheckinDate: "2021-09-03", checkout: "September 5", fullCheckoutDate: "2021-09-05", nights: 2, mealplan: "Breakfast,Lunch" } ]
experiences: [ { id: 1, fullDate: "2021-09-01", title: "Arrival", itinerary: // [] }, { id: 2, fullDate: "2021-09-02", title: "Sightseeing", itinerary: // [] } ]
Je souhaite trouver un moyen de combiner les mêmes dates entre hébergements et expériences en un seul objet.
myTrips: [ { accomodation: { id: 1, name: "Senator Hotel Fnideq", address: "Route de Ceuta, 93100 Fnidek, Morocco", checkin: "September 1", fullCheckinDate: "2021-09-01", checkout: "September 3", fullCheckoutDate: "2021-09-03", nights: 2, mealplan: "Breakfast,Lunch" }, experiences: { id: 1, fullDate: "2021-09-01", title: "Arrival", itinerary: // [] } }, //... 另一个对象 ]
J'utilise dayjs
pour gérer les dates. Comment dois-je gérer ce problème ?
P粉2960800762023-09-08 00:26:08
const accomodation = [ { id: 1, name: "Senator Hotel Fnideq", address: "Route de Ceuta, 93100 Fnidek, Morocco", checkin: "September 1", fullCheckinDate: "2021-09-01", checkout: "September 3", fullCheckoutDate: "2021-09-03", nights: 2, mealplan: "Breakfast,Lunch" }, { id: 2, name: "Kabek Morocco Hotel", address: "Omis Juy, 93100 Kabek, Morocco", checkin: "September 3", fullCheckinDate: "2021-09-03", checkout: "September 5", fullCheckoutDate: "2021-09-05", nights: 2, mealplan: "Breakfast,Lunch" } ]; const experiences = [ { id: 1, fullDate: "2021-09-01", title: "Arrival", itinerary: [] }, { id: 2, fullDate: "2021-09-02", title: "Sightseeing", itinerary: [] } ]; const myTrips = []; accomodation.map(acc => { const experience = experiences.filter(exp => { const date = new Date(exp.fullDate); return date >= new Date(acc.fullCheckinDate) && date <= new Date(acc.fullCheckoutDate); }); myTrips.push({accomodation: acc, experience}); }); console.log(myTrips);