Como obter os elementos anteriores e seguintes de um loop de matriz em JavaScript?

Em um loop de matriz simples de Javacript como

for (var i=0; i<array.length; i++) {

var previous=array[i-1];
var current=array[i];
var next=array[i+1];

}

Eu preciso pegar oprevious enext elementos em um ciclo ilimitado. Por exemplo,

The previous element of the first element in the array is the array last element
The next element of the last element in the array is the array first element

Qual pode ser a maneira mais eficiente de fazer isso? A única maneira que posso pensar é verificar se o elemento é o primeiro ou o último no array em cada rodada.

Na verdade, espero tornar o array um ciclo fechado de alguma forma, em vez de linear.

questionAnswers(4)

yourAnswerToTheQuestion