I like this lil' one-liner for wrapping around an array forward, or backwards. Given an array, with a current index, you want to move either to the next item, or the previous one. Here's the setup:

```
var a = ["alice", "bob", "charlie"],
current = 0; // start with "alice",
direction = Math.random() < 0.5 ? -1 : 1;
```

The direction is picked at random. To find the `nth + 1`

, or `nth - 1`

, we use modulus... plus a trick:

`current = (current + direction + a.length) % a.length;`

See the trick? Modulus will always return us the correct value when incrementing - but when decrementing: `-1 % a.length = -1`

. To fix this, we *always* add the array length before taking the modulus. The value will never be less than 0. Nifty!