JavaScript中關(guān)于indexOf的使用方法與問題小結(jié)
更新時間:2010年08月05日 14:06:31 作者:
indexOf方法的作用是:根據(jù)給定參數(shù)x返回目標字符串(可以看成字符的數(shù)組)或數(shù)組中與x相等的項的索引。
這個方法相當(dāng)有用,很多編程語言中都有相對應(yīng)的實現(xiàn),javascript中也不例外,然而當(dāng)我在ie中運行如下代碼時候:
var arr = [1,2,3];
alert(arr.indexOf(1));
卻被提示“對象不支持此屬性和方法” 。而在chrome,ff下去運行良好。遂去求問google大神,發(fā)現(xiàn)原來js中Array的indexOf方法在js1.6版本中才給予了實現(xiàn),ie7,8中只實現(xiàn)到了js1.3版本,chrome為js1.7版本,ff為js1.8版本。(ie依舊慢半拍)。無奈,只好針對ie進行擴展:
Array.prototype._indexOf = function(n){
if("indexOf" in this){
return this["indexOf"](n);
}
for(var i=0;i<this.length;i++){
if(n===this[i]){
return i;
}
}
return -1;
};
使用如下:
var arr = ["1","2","3"];
alert(arr._indexOf("2"));
這里我們針對Array的原型進行了擴展,在擴展方法的命名上我加上了"_"字符,我認為這是一個好的習(xí)慣,當(dāng)你在針對原型進行擴展的時候有必要對自己的擴展加以標記。
在_indexOf方法中,我們首先判斷當(dāng)前Array是否實現(xiàn)了"indexOf" 方法,如果是的話直接調(diào)用系統(tǒng)發(fā)法,否則進行遍歷。
復(fù)制代碼 代碼如下:
var arr = [1,2,3];
alert(arr.indexOf(1));
卻被提示“對象不支持此屬性和方法” 。而在chrome,ff下去運行良好。遂去求問google大神,發(fā)現(xiàn)原來js中Array的indexOf方法在js1.6版本中才給予了實現(xiàn),ie7,8中只實現(xiàn)到了js1.3版本,chrome為js1.7版本,ff為js1.8版本。(ie依舊慢半拍)。無奈,只好針對ie進行擴展:
復(fù)制代碼 代碼如下:
Array.prototype._indexOf = function(n){
if("indexOf" in this){
return this["indexOf"](n);
}
for(var i=0;i<this.length;i++){
if(n===this[i]){
return i;
}
}
return -1;
};
使用如下:
復(fù)制代碼 代碼如下:
var arr = ["1","2","3"];
alert(arr._indexOf("2"));
這里我們針對Array的原型進行了擴展,在擴展方法的命名上我加上了"_"字符,我認為這是一個好的習(xí)慣,當(dāng)你在針對原型進行擴展的時候有必要對自己的擴展加以標記。
在_indexOf方法中,我們首先判斷當(dāng)前Array是否實現(xiàn)了"indexOf" 方法,如果是的話直接調(diào)用系統(tǒng)發(fā)法,否則進行遍歷。
相關(guān)文章
說說掌握JavaScript語言的思想前提想學(xué)習(xí)js的朋友可以看看
無論是公司的同事還是外界的程序員朋友們,大部分人對JavaScript的高級應(yīng)用不甚了解,已有的知識架構(gòu)里會認為JavaScript僅僅是一門腳本語言,其作用是給頁面做一些錦上添花的效果,比如表單驗證等等。2009-04-04
JavaScript高級程序設(shè)計 學(xué)習(xí)筆記 js高級技巧
JavaScript高級程序設(shè)計 學(xué)習(xí)筆記 js高級技巧,學(xué)習(xí)js的朋友可以參考下。2011-09-09
JavaScript中的document.referrer在各種瀏覽器測試結(jié)果
這篇文章主要介紹了JavaScript中的document.referrer在各種瀏覽器測試結(jié)果,包括在多種情況下每個瀏覽器能否用document.referrer取到值,非常珍貴的測試結(jié)果,需要的朋友可以參考下2014-07-07
JavaScript sub方法入門實例(把字符串顯示為下標)
這篇文章主要介紹了JavaScript sub方法入門實例,sub方法用于把字符串顯示為下標,需要的朋友可以參考下2014-10-10

