摘要:今天誤解了函數有必要在這里寫出來幫助像我一樣的新手。從數組的后面向前查找,從處開始。也就是說,一個元素對應一個索引,不會變的。那么對于同一個元素不管是從前往后還是從后往前查找,返回值應該是一樣的。
今天誤解了Array.prototype.lastIndexOf函數, 有必要在這里寫出來, 幫助像我一樣的新手。
下面這個返回幾?
var n = [1, 2, 3, 4, 5, 3,1]; console.log(n.lastIndexOf(3));
誤解:
剛開始,我以為從后往前數,那么應該是返回1, 因為數到底2個就是3嗎,再加上數組從0開始。
我又去看文檔:
lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或變量)在數組中的最后一個的索引,如果不存在則返回 -1。從數組的后面向前查找,從 fromIndex 處開始。
既然是最后一個索引,那么我繼續從后往前數, 得到4.
但是:
各位運行一下就會發現結果是5!
這?
于是我寫下:
按數到第一個, 如果從后往前數的話則應該是1, 從前往后就是2;
按數到第二個,從后往前第2個就,是4,從前往后第2個是5;
也就是說這是從前往后數得到的5.
那?
其實我誤解了索引這個東西
索引不存在從哪邊數,它是定的。
也就是說,一個元素對應一個索引,不會變的。
那么, 對于同一個元素不管是從前往后(indexOf)還是從后往前(lastIndexOf)查找,返回值應該是一樣的。
var n = [1, 2, 3, 4, 5, 3,1]; console.log(n.indexOf(4)); console.log(n.lastIndexOf(4));
上面都返回3,我想lastIndexOf的出現是為了性能的原因吧,如果離后面近就用lastIndexOf,但是它又是找到最后一個索引,這有個屁用?
總結:
indexOf 從前往后第一個,返回索引
lastIndexOf 從后往前最后一個,返回索引
所以這2個查找的就是同一個元素, 不同的寫法,而且始終只能返回索引小的。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/86789.html
操縱字符串中的字符 String類有許多方法可用于檢查字符串的內容,查找字符串中的字符或子字符串,更改大小寫以及其他任務。 按索引獲取字符和子字符串 你可以通過調用charAt()訪問器方法獲取字符串中特定索引處的字符,第一個字符的索引是0,而最后一個字符的索引是length()-1,例如,以下代碼獲取字符串中索引9處的字符: String anotherPalindrome = Niagara....
摘要:通過采用同步的形式獲取內容,取得內容后,執行文件的內容,設置保存到中,再刪除中上個版本的文件。同步獲取文件內容。 利用localStorage儲存js文件,只有在第一次訪問該頁面的時候加載js文件,以后在訪問的時候加載本地localStorage執行 封裝lsFile類 有url、filename(key前綴)、lname(key)、filetext(值)屬性 var lstora...
摘要:效果圖源碼地址最近開發項目需要自定義收銀鍵盤,網上查了查都感覺不是太好,于是自己寫了一個,自定義的鍵盤主要是根據結合來寫的如下然后自己寫了一個,設置了鍵盤的文字和類型。 效果圖:[(showImg(https://segmentfault.com/img/remote/1460000010841350);1)] 源碼地址(github)最近開發項目需要自定義收銀鍵盤,網上查了查都感覺不...
摘要:今天要講的是,如何在數組中尋找元素,對應中的,,,以及方法。如果往一個有序數組中插入元素,使得數組繼續保持有序,那么這個插入位置是這就是這個方法的作用,有序,很顯然用二分查找即可。 Why underscore (覺得這部分眼熟的可以直接跳到下一段了...) 最近開始看 underscore.js 源碼,并將 underscore.js 源碼解讀 放在了我的 2016 計劃中。 閱讀一...
閱讀 2235·2021-09-22 15:25
閱讀 3618·2019-08-30 12:48
閱讀 2207·2019-08-30 11:25
閱讀 2340·2019-08-30 11:05
閱讀 727·2019-08-29 17:28
閱讀 3288·2019-08-26 12:16
閱讀 2611·2019-08-26 11:31
閱讀 1708·2019-08-23 17:08