配列の要素を負のインデックスで取得する

配列の要素をどんな整数のインデックスでも取得できる関数を書いた。

function getItemAt(target, index) {
if (index < 0) {
return arguments.callee(target.concat().reverse(), -(index + 1));
} else {
return target[index % target.length];
}
}

usage

alert(getItemAt(["a", "b", "c", "d", "e"], -1));// e
alert(getItemAt(["a", "b", "c", "d", "e"], 6));// b

os0x さんのコメントを元に改正 (2009.02.03)

function getItemAt(target, index) {
return target.slice(index % target.length)[0];
}