-1

I have an array of objects, given an index I want to move the object of given index to the first position and then change the order of the elements in the array accordingly!

I'll try to give you an example:

Given the following array and the index 3 , thursday:

const openingTimes =
    [
        {day:'monday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'tuesday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'wednesday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'thursday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'friday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'saturday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'sunday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
    ];

The resulting array would be the following:

const modifiedOpeningTimes =
    [
        {day:'thursday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'friday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'saturday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'sunday', hours:    [ { opens: '09:00', closes: '17:30' } ]},       
        {day:'monday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'tuesday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'wednesday', hours:    [ { opens: '09:00', closes: '17:30' } ]}, 
    ];
gabogabans
  • 3,035
  • 5
  • 33
  • 81

1 Answers1

0

you can do a simple loop, something like this:

var index = 3;
const openingTimes =
    [
        {day:'monday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'tuesday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'wednesday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'thursday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'friday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'saturday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
        {day:'sunday', hours:    [ { opens: '09:00', closes: '17:30' } ]},
    ];
var arr = []
var x = 0
for(var i = 0; i < 7; i++){
  if ((index + i) < 7){
    arr.push(openingTimes[i+index])
    x++
  }else{
     arr.push(openingTimes[i-x])
  } 
}
 console.log(arr)
Stefan Avramovic
  • 1,365
  • 2
  • 11
  • 20