→
その Array 中を、指定の要素を指定位置から前方に探し、見つかった要素の位置を返します。
もし存在しなければ -1 を返します。
arr | Arrayオブジェクト |
---|---|
searchElement | 検索する配列要素です。 |
fromIndex | 省略可。逆向きに検索し始める添字です。
デフォルトは配列の長さ に 1 を引いた値(arr.length -1)で、つまり配列全体が検索されます。 もしこの添字が配列の長さ以上ならば、配列全体が検索されます。 負の数の場合、これは配列の終わりからのオフセットとみなされます。この添字が負の数であってもなお、配列は後ろから前に検索されることに注意してください。負の添字の絶対値が配列の長さを超えた場合、-1 が返され、配列は検索されません。 |
配列内の一致した要素の最後の位置です。見つからなかった場合は -1 です。
lastIndexOf は searchElement と配列の要素を 厳密等価(三重イコール演算子 === で使われるのと同じ方法)を使って比較します。
lastIndexOf を使って配列中のある値の位置を探す例を以下に示します。
var numbers = [2, 5, 9, 2]; D=numbers.lastIndexOf(2); //=3 D=numbers.lastIndexOf(7); //=-1 D=numbers.lastIndexOf(2, 3); //=3 D=numbers.lastIndexOf(2, 2); //=0 D=numbers.lastIndexOf(2, -2); //=0。「2」を最後から2番目から前方に探して D=numbers.lastIndexOf(2, -1); //=3
以下の例は lastIndexOf を使って、与えられた配列中のある値の添字すべてを探しています。push を使って、値が見つかる度に別の配列にその添字を追加しています。
var indices = []; var array = ['a', 'b', 'a', 'c', 'a', 'd']; var element = 'a'; var idx = array.lastIndexOf(element); while (idx != -1) { indices.push(idx); idx = (idx > 0 ? array.lastIndexOf(element, idx - 1) : -1); } D=indices; //=[4, 2, 0]
ここで idx == 0 の場合を分けて扱わないといけないことに注意してください。なぜなら、もし検索する値が配列の最初の要素にあると、その値は fromIndex パラメータにかかわらずいつもヒットしてしまうのです。これは indexOf メソッドとは異なります。
¶以下を省く