Pot.lastIndexOf

{Number|String} Pot.lastIndexOf ({Array|Object|String|*} object, {*} subject [, {Number|String|*} from])

Pot.js と PotLite.js で利用可能。

引数 object の要素を逆から検索し、subject が見つけられた最初の添字を返します。
もし存在しなければ -1 を返します。

この関数は、Array.prototype.lastIndexOf または String.prototype.lastIndexOf と同じように処理が行われます。
オブジェクトや文字列に対しても実行できます。
引数 object は対象のオブジェクトまたは配列、文字列などを指定します。
引数 subject は、object の各要素から探す値を指定します。
引数 from が与えらると、逆向きに検索し始める添字として使用されます。
デフォルトは object の長さの値で、つまり全体が検索されます。

Pot.globalize() が適応済みの場合、Pot.lastIndexOf() が lastIndexOf() で実行できます。

逆から検索して、見つかった最初の添字が返ります。なければ -1 が返ります。

var arr = [2, 5, 9, 2, 1];

debug( Pot.lastIndexOf(arr, 2) );          // 3
debug( Pot.lastIndexOf(arr, 7) );          // -1
debug( Pot.lastIndexOf(arr, 2, 3) );       // 3
debug( Pot.lastIndexOf(arr, 2, 2) );       // 0
debug( Pot.lastIndexOf(arr, 2, -3) );      // 0
debug( Pot.lastIndexOf(arr, 2, -2) );      // 3

var obj = {a: 2, b: 5, c: 9, d: 2, e: 1};

debug( Pot.lastIndexOf(obj, 2) );          // 'd'
debug( Pot.lastIndexOf(obj, 7) );          // -1
debug( Pot.lastIndexOf(obj, 2, 'd') );     // 'd'
debug( Pot.lastIndexOf(obj, 2, 'c') );     // 'a'

var str = 'foo bar baz foo abc';

debug( Pot.lastIndexOf(str, 'baz') );      // 8
debug( Pot.lastIndexOf(str, 'hoge') );     // -1
debug( Pot.lastIndexOf(str, 'foo') );      // 12
debug( Pot.lastIndexOf(str, 'foo', 16) );  // 12
debug( Pot.lastIndexOf(str, 'foo', -16) ); // 0