Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

117
Vistas
eliminando todas las entradas de un objeto antes de un cierto índice javascript

Tengo un objeto que se ve así:

 const hours = { Monday: ['9:00 am', '4:00 pm'], Tuesday: ['9:00 am', '4:00 pm'], Wednesday:['9:00 am', '3:00 pm'] Thursday: ['9:00 am', '3:00 pm'], Friday: ['9:00 am', '3:00 pm'], Saturday: "Closed", Sunday: "Closed", }

Luego obtengo el día actual de la semana en un formato de cadena:

 const d = new Date(); let day = d.getDay(); const daysOfWeek = { 1: 'Monday', 2: 'Tuesday', 3: 'Wednesday', 4: 'Thursday', 5: 'Friday', 6: 'Saturday', 7: 'Sunday' } const currentDayString = daysOfWeek[day]

Ahora necesito crear un nuevo objeto que tenga el día actual, hasta el domingo.

salida ex

si el día es 'viernes' las hours obj deberían ser:

 { Friday: ['9:00 am', '3:00 pm'], Saturday: "Closed", Sunday: "Closed" }

¿Cómo puedo conseguir esto?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Deje que el día de hoy sea d (por ejemplo, 'lunes', 'martes') entonces, y serverData sean los datos que estamos obteniendo del servidor, entonces,

 let found=0; let result={} Object.keys(daysOfWeek).forEach(key => { if (found) { result[daysOfWeek[key]] = serverData[daysOfWeek[key]] }; if (daysOfWeek[key] === d) { found = 1; } })
about 4 years ago · Juan Pablo Isaza Denunciar

0

Digamos que su día de inicio es "jueves", su objeto de resultado nunca podría ser así:

 { Thursday: (2) ['9:00 am', '3:00 pm' Friday: (2) ['9:00 am', '3:00 pm'] Saturday: "Closed" Sunday: "Closed" }

Porque JS ordena un objeto alfabéticamente.

Intente insertar sus resultados en una matriz como esta ( los datos han sido los datos de su servidor):

 let result = []; for(let i=day; i <= Object.keys(daysOfWeek).length; i++) { // result[daysOfWeek[i]] = data[daysOfWeek[i]]; // return object result.push(data[daysOfWeek[i]]); // return array }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Se puede hacer con reduce

 const data = { Monday: ['9:00 am', '4:00 pm'], Tuesday: ['9:00 am', '4:00 pm'], Wednesday: ['9:00 am', '3:00 pm'], Thursday: ['9:00 am', '3:00 pm'], Friday: ['9:00 am', '3:00 pm'], Saturday: 'Closed', Sunday: 'Closed', }; const day = new Date().toLocaleString('en', { weekday: 'long' }); const result = Object.entries(data).reduce((prev, [key, value]) => { if (key === day || day in prev) { prev[key] = value; } return prev; }, {}); console.log(result);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda