Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

154
Visualizações
Matching multiple values from array to object array

I am trying to create a booking app and mark out the slots unavailable. The slots unavailable are in an array for example:

const unavailable = [ "11:00am a 12:00pm", "17:00pm a 18:00pm"]

and the total slots are

 let slots = [ {
    slot: "9:00am a 10:00am",
    isReserved: false,
  },
  {
    slot: "10:00am a 11:00am",
    isReserved: false,
  },
  { slot: "11:00am a 12:00pm", isReserved: false },
  {
    slot: "15:00pm a 16:00pm",
    isReserved: false,
  },
  {
    slot: "17:00pm a 18:00pm",
    isReserved: false,
  },
  {
    slot: "18:00pm a 19:00pm",
    isReserved: false,
  },
  { slot: "19:00pm a 20:00pm", isReserved: false },
];

my goal is to use the unavailable array and each value inside and find how to change that field to

isReserved: true

I've tried to filter like so

    const matches = slots.filter((same) => same.slot === unavailable);

but does not work. What did kind of work was

    const matches = slots.filter((same) => same.slot === unavailable[0]);

but that only matches the first value, and I still do not know how to change the isReserved field.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

You could iterate and update if a slot is found.

const
    unavailable = ["11:00am a 12:00pm", "17:00pm a 18:00pm"],
    slots = [{ slot: "9:00am a 10:00am", isReserved: false }, { slot: "10:00am a 11:00am", isReserved: false }, { slot: "11:00am a 12:00pm", isReserved: false }, { slot: "15:00pm a 16:00pm", isReserved: false }, { slot: "17:00pm a 18:00pm", isReserved: false }, { slot: "18:00pm a 19:00pm", isReserved: false }, { slot: "19:00pm a 20:00pm", isReserved: false }];

slots.forEach(o => {
    if (unavailable.some(slot => slot === o.slot)) o.isReserved = true;
});

console.log(slots);
.as-console-wrapper { max-height: 100% !important; top: 0; }

If you like not to mutate the original array, you could map the objects with a new property.

const
    unavailable = ["11:00am a 12:00pm", "17:00pm a 18:00pm"],
    slots = [{ slot: "9:00am a 10:00am", isReserved: false }, { slot: "10:00am a 11:00am", isReserved: false }, { slot: "11:00am a 12:00pm", isReserved: false }, { slot: "15:00pm a 16:00pm", isReserved: false }, { slot: "17:00pm a 18:00pm", isReserved: false }, { slot: "18:00pm a 19:00pm", isReserved: false }, { slot: "19:00pm a 20:00pm", isReserved: false }],
    result = slots.map(o => ({
        ...o,
        isReserved: o.isReserved || unavailable.some(slot => slot === o.slot)
    }));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório

0

you can use the map operator and can achieve this.

const unavailable = [ "11:00am a 12:00pm", "17:00pm a 18:00pm"]
let slots = [ {
    slot: "9:00am a 10:00am",
    isReserved: false,
  },
  {
    slot: "10:00am a 11:00am",
    isReserved: false,
  },
  { slot: "11:00am a 12:00pm", isReserved: false },
  {
    slot: "15:00pm a 16:00pm",
    isReserved: false,
  },
  {
    slot: "17:00pm a 18:00pm",
    isReserved: false,
  },
  {
    slot: "18:00pm a 19:00pm",
    isReserved: false,
  },
  { slot: "19:00pm a 20:00pm", isReserved: false },
];

const slots = slots.map(slotobj=>{
if(unavailable.includes(slotobj.slot)){
 slotobj.isReserved =true
}
return slotobj;
})

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda