2012-09-14 96 views
3

我真的不理解lastIndexOf是如何工作的。我無法獲得第二個可選參數的用法。lastIndexOf Confusion

string.lastIndexOf(searchvalue,啓動)

searchvalue - 必需>。要搜索的字符串

開始 - >可選。開始搜索的位置。如果省略,默認值是字符串

var test = "mississippi"; 

test.lastIndexOf("ss",1) // return -1 
test.lastIndexOf("ss",2) // returns 2 
test.lastIndexOf("ss",5) // returns 5 

誰能告訴我一步的想法步長?爲什麼第一個返回-1和第二個返回2例如?

TIA

回答

5

它因爲那是起始索引。沒有找到-1的意思。

m 0 
i 1 
s 2 
s 3 
i 4 
s 5 
s 6 
i 7 
p 8 
p 9 
i 10 

因此,從1開始,我看不到匹配。但用2,我看到s然後s在3.

MDN explains它很好。

+1

詳細說明,這是搜索的起點,搜索是向後執行的。如果參數是'1',則只搜索字符串的前兩個字符。如果它是'5',則搜索所有字符到第六個(包括從1開始計數)。 –

+0

好的。然後,我正在尋找'ss',並將其作爲第二個參數。爲什麼它給了我5結果。因爲第二個'是'第六個字符。它不應該查找多達5 –

+0

@Ryu,nope,第二個's'有* index * 6.這是字符串中的第七個字符,假設您從1開始計數。該函數返回'5',因爲它開始搜索在索引'5'(第一個's')處,並且從這個位置看到了'ss'(字符串的其餘部分仍然計數)。 –

-1

lastIndexOf()方法獲取主字符串中搜索字符串的最後一個索引。它將一個參數作爲輸入一個搜索字符串。

它返回搜索字符串的最後位置(索引)。如果找不到搜索字符串,它將返回「-1」。 訪問http://skillcram.com/JS.htm例如