成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

淺談lastIndexOf

羅志環(huán) / 3166人閱讀

摘要:今天誤解了函數(shù)有必要在這里寫(xiě)出來(lái)幫助像我一樣的新手。從數(shù)組的后面向前查找,從處開(kāi)始。也就是說(shuō),一個(gè)元素對(duì)應(yīng)一個(gè)索引,不會(huì)變的。那么對(duì)于同一個(gè)元素不管是從前往后還是從后往前查找,返回值應(yīng)該是一樣的。

今天誤解了Array.prototype.lastIndexOf函數(shù), 有必要在這里寫(xiě)出來(lái), 幫助像我一樣的新手。

下面這個(gè)返回幾?

var n = [1, 2, 3, 4, 5, 3,1];
console.log(n.lastIndexOf(3));

誤解:

剛開(kāi)始,我以為從后往前數(shù),那么應(yīng)該是返回1, 因?yàn)閿?shù)到底2個(gè)就是3嗎,再加上數(shù)組從0開(kāi)始。

我又去看文檔:

lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或變量)在數(shù)組中的最后一個(gè)的索引,如果不存在則返回 -1。從數(shù)組的后面向前查找,從 fromIndex 處開(kāi)始。

既然是最后一個(gè)索引,那么我繼續(xù)從后往前數(shù), 得到4.

但是:

各位運(yùn)行一下就會(huì)發(fā)現(xiàn)結(jié)果是5!

這?

于是我寫(xiě)下:

按數(shù)到第一個(gè), 如果從后往前數(shù)的話(huà)則應(yīng)該是1, 從前往后就是2;
按數(shù)到第二個(gè),從后往前第2個(gè)就,是4,從前往后第2個(gè)是5;

也就是說(shuō)這是從前往后數(shù)得到的5.

那?

其實(shí)我誤解了索引這個(gè)東西

索引不存在從哪邊數(shù),它是定的。
也就是說(shuō),一個(gè)元素對(duì)應(yīng)一個(gè)索引,不會(huì)變的。
那么, 對(duì)于同一個(gè)元素不管是從前往后(indexOf)還是從后往前(lastIndexOf)查找,返回值應(yīng)該是一樣的。

var n = [1, 2, 3, 4, 5, 3,1];
console.log(n.indexOf(4));
console.log(n.lastIndexOf(4));

上面都返回3,我想lastIndexOf的出現(xiàn)是為了性能的原因吧,如果離后面近就用lastIndexOf,但是它又是找到最后一個(gè)索引,這有個(gè)屁用?

總結(jié):

indexOf 從前往后第一個(gè),返回索引

lastIndexOf 從后往前最后一個(gè),返回索引

所以這2個(gè)查找的就是同一個(gè)元素, 不同的寫(xiě)法,而且始終只能返回索引小的。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/86789.html

相關(guān)文章

  • Java? 教程(操縱字符串中的字符)

    操縱字符串中的字符 String類(lèi)有許多方法可用于檢查字符串的內(nèi)容,查找字符串中的字符或子字符串,更改大小寫(xiě)以及其他任務(wù)。 按索引獲取字符和子字符串 你可以通過(guò)調(diào)用charAt()訪(fǎng)問(wèn)器方法獲取字符串中特定索引處的字符,第一個(gè)字符的索引是0,而最后一個(gè)字符的索引是length()-1,例如,以下代碼獲取字符串中索引9處的字符: String anotherPalindrome = Niagara....

    Corwien 評(píng)論0 收藏0
  • 利用localStorage本地儲(chǔ)存js文件

    摘要:通過(guò)采用同步的形式獲取內(nèi)容,取得內(nèi)容后,執(zhí)行文件的內(nèi)容,設(shè)置保存到中,再刪除中上個(gè)版本的文件。同步獲取文件內(nèi)容。 利用localStorage儲(chǔ)存js文件,只有在第一次訪(fǎng)問(wèn)該頁(yè)面的時(shí)候加載js文件,以后在訪(fǎng)問(wèn)的時(shí)候加載本地localStorage執(zhí)行 封裝lsFile類(lèi) 有url、filename(key前綴)、lname(key)、filetext(值)屬性 var lstora...

    haitiancoder 評(píng)論0 收藏0
  • Android自定義收銀鍵盤(pán)(原創(chuàng))的文章

    摘要:效果圖源碼地址最近開(kāi)發(fā)項(xiàng)目需要自定義收銀鍵盤(pán),網(wǎng)上查了查都感覺(jué)不是太好,于是自己寫(xiě)了一個(gè),自定義的鍵盤(pán)主要是根據(jù)結(jié)合來(lái)寫(xiě)的如下然后自己寫(xiě)了一個(gè),設(shè)置了鍵盤(pán)的文字和類(lèi)型。 效果圖:[(showImg(https://segmentfault.com/img/remote/1460000010841350);1)] 源碼地址(github)最近開(kāi)發(fā)項(xiàng)目需要自定義收銀鍵盤(pán),網(wǎng)上查了查都感覺(jué)不...

    kuangcaibao 評(píng)論0 收藏0
  • 【underscore 源碼解讀】如何優(yōu)雅地寫(xiě)一個(gè)『在數(shù)組中尋找指定元素』的方法

    摘要:今天要講的是,如何在數(shù)組中尋找元素,對(duì)應(yīng)中的,,,以及方法。如果往一個(gè)有序數(shù)組中插入元素,使得數(shù)組繼續(xù)保持有序,那么這個(gè)插入位置是這就是這個(gè)方法的作用,有序,很顯然用二分查找即可。 Why underscore (覺(jué)得這部分眼熟的可以直接跳到下一段了...) 最近開(kāi)始看 underscore.js 源碼,并將 underscore.js 源碼解讀 放在了我的 2016 計(jì)劃中。 閱讀一...

    0x584a 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<