Question: I tried array slice but its not giving expected result if starting month is one of the last 3 months of the year.

If current month is November then its should give November to February list

Answer: 
Simply double the array and then slice it

```
var newArr = [ ...arr, ...arr ];
var index = 10;
var output = newArr.slice( index, index + 4 )

```

**Demo**

```js
var arr = [{
  month: 'Jan',
  id: "1"
}, {
  month: 'Feb',
  id: "2"
}, {
  month: 'Mar',
  id: "3"
}, {
  month: 'Apr',
  id: "4"
}, {
  month: 'May',
  id: "5"
}, {
  month: 'Jun',
  id: "6"
}, {
  month: 'Jul',
  id: "7"
}, {
  month: 'Aug',
  id: "8"
}, {
  month: 'Sep',
  id: "9"
}, {
  month: 'Oct',
  id: "10"
}, {
  month: 'Nov',
  id: "11"
}, {
  month: 'Dec',
  id: "12"
}];

var newArr = [ ...arr, ...arr ];
//console.log( newArr );
var index = 10;
var output = newArr.slice(index, index+4);

console.log( output );
```

If spread `...` is not supported, then use `concat`

```
var newArr = arr.concat(arr.slice())

```
A lengthy approach but works.

```js
let months = ['Jan','Feb', 'Mar', 'Apr', 'May' ,'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

let currMonth_id = new Date().getMonth();

let output = [];
output.push({month: months[currMonth_id], id: currMonth_id+1});

for(let i = 1 ; i < 4; i++) {
  let nextMonth_id = (currMonth_id + i) % 12; 
  output.push({month: months[nextMonth_id], id: nextMonth_id+1});
}

console.log(output)
```