Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

111
Views
Cómo mover una matriz con días de la semana un elemento hacia atrás js

tengo dos matrices

 const weekDays = [ { label: 'Mon', name: 'Monday' }, { label: 'Tue', name: 'Tuesday' }, { label: 'Wed', name: 'Wednesday' }, { label: 'Thu', name: 'Thursday' }, { label: 'Fri', name: 'Friday' }, { label: 'Sat', name: 'Saturday' }, { label: 'Sun', name: 'Sunday' }, ];

y const daysOfWeek = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

Lo que quería lograr es mover array(daysOfWeek) un elemento hacia atrás, es decir, daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu'] .

Para lograr eso, creé dicho código.

 const selectedDaysOfWeek = weekDays.map(({label, name}, index, array) => { if (daysOfWeek.includes(label)) { return array[index - 1].label; } return '' });

pero devuelve la etiqueta de indefinido.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Simplemente puede usar Array.prototype.pop() para eliminar el elemento del final y devolver ese elemento, luego use Array.prototype.unshift() para insertar un elemento al principio

 const weekDays = [ { label: 'Mon', name: 'Monday' }, { label: 'Tue', name: 'Tuesday' }, { label: 'Wed', name: 'Wednesday' }, { label: 'Thu', name: 'Thursday' }, { label: 'Fri', name: 'Friday' }, { label: 'Sat', name: 'Saturday' }, { label: 'Sun', name: 'Sunday' }, ]; const lastElement = weekDays.pop(); // get last element weekDays.unshift(lastElement); // get new array that last element is first one let finalResult = weekDays.map(x => x.label) // get only names of week days from object console.log(finalResult)

EDITAR : de acuerdo con las necesidades del OP

 const weekDays = [ { label: 'Mon', name: 'Monday' }, { label: 'Tue', name: 'Tuesday' }, { label: 'Wed', name: 'Wednesday' }, { label: 'Thu', name: 'Thursday' }, { label: 'Fri', name: 'Friday' }, { label: 'Sat', name: 'Saturday' }, { label: 'Sun', name: 'Sunday' }, ]; function getWeeks(arr) { return [arr[arr.length - 1], ...arr.slice(0, arr.length - 1)]; } console.log(getWeeks(['Tue', 'Wed', 'Thu'])); console.log(getWeeks(weekDays));

about 4 years ago · Juan Pablo Isaza Report

0

Supongo que tu solución es:

 const weekDays = [ { label: 'Mon', name: 'Monday' }, { label: 'Tue', name: 'Tuesday' }, { label: 'Wed', name: 'Wednesday' }, { label: 'Thu', name: 'Thursday' }, { label: 'Fri', name: 'Friday' }, { label: 'Sat', name: 'Saturday' }, { label: 'Sun', name: 'Sunday' }, ]; let daysOfWeek = ['Wed', 'Thu', 'Fri'] const firstDayIndex = weekDays.findIndex(day => day.label === daysOfWeek[0]) // get current day index daysOfWeek.unshift(weekDays[(firstDayIndex || weekDays.length) - 1].label) // add previous day by index daysOfWeek.pop() // remove last day console.log(daysOfWeek) // // ['Tue', 'Wed', 'Thu'], here we go
about 4 years ago · Juan Pablo Isaza Report

0

const result = [weekDays[weekDays.length-1],...weekDays.slice(0,weekDays.length-1)].slice(0,5)
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!