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


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

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];
}
カテゴリー: JavaScript   パーマリンク

配列の要素を負のインデックスで取得する への2件のコメント

  1. os0x より:

    [1,2,3].slice(-1)[0],
    [1,2,3].slice(-2)[0],
    [1,2,3].slice(-3)[0]
    とかどうでしょう?

  2. Tanabe より:

    なるほど、slice を使ったらスマートになりました。
    ありがとうございました。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>