mi idea era más básica. sólo se podía avanzar. de cualquier modo, la lógica para también retroceder, no difiere mucho de la idea original
Cita: <div id="viewer">
<img id="imgV" src="img0.png" alt="">
<button onclick="anterior()">anterior</button><button onclick="anterior(1)">Siguiente</button>
</div>
<script>
(function(i){
var arr = [
"img0.png",
"img1.png",
"img2.png",
"img3.png",
"img4.png"
];
var elem = document.querySelector('#imgV'), largoArray = arr.length-1;
elem.src = arr[i];
anterior = function(bol){
i += (bol) ? 1 : largoArray;
elem.src = arr[i % arr.length];
}
})(0)
</script>