JavaScript中關(guān)于indexOf的使用方法與問(wèn)題小結(jié)
更新時(shí)間:2010年08月05日 14:06:31 作者:
indexOf方法的作用是:根據(jù)給定參數(shù)x返回目標(biāo)字符串(可以看成字符的數(shù)組)或數(shù)組中與x相等的項(xiàng)的索引。
這個(gè)方法相當(dāng)有用,很多編程語(yǔ)言中都有相對(duì)應(yīng)的實(shí)現(xiàn),javascript中也不例外,然而當(dāng)我在ie中運(yùn)行如下代碼時(shí)候:
var arr = [1,2,3];
alert(arr.indexOf(1));
卻被提示“對(duì)象不支持此屬性和方法” 。而在chrome,ff下去運(yùn)行良好。遂去求問(wèn)google大神,發(fā)現(xiàn)原來(lái)js中Array的indexOf方法在js1.6版本中才給予了實(shí)現(xiàn),ie7,8中只實(shí)現(xiàn)到了js1.3版本,chrome為js1.7版本,ff為js1.8版本。(ie依舊慢半拍)。無(wú)奈,只好針對(duì)ie進(jìn)行擴(kuò)展:
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"));
這里我們針對(duì)Array的原型進(jìn)行了擴(kuò)展,在擴(kuò)展方法的命名上我加上了"_"字符,我認(rèn)為這是一個(gè)好的習(xí)慣,當(dāng)你在針對(duì)原型進(jìn)行擴(kuò)展的時(shí)候有必要對(duì)自己的擴(kuò)展加以標(biāo)記。
在_indexOf方法中,我們首先判斷當(dāng)前Array是否實(shí)現(xiàn)了"indexOf" 方法,如果是的話直接調(diào)用系統(tǒng)發(fā)法,否則進(jìn)行遍歷。
復(fù)制代碼 代碼如下:
var arr = [1,2,3];
alert(arr.indexOf(1));
卻被提示“對(duì)象不支持此屬性和方法” 。而在chrome,ff下去運(yùn)行良好。遂去求問(wèn)google大神,發(fā)現(xiàn)原來(lái)js中Array的indexOf方法在js1.6版本中才給予了實(shí)現(xiàn),ie7,8中只實(shí)現(xiàn)到了js1.3版本,chrome為js1.7版本,ff為js1.8版本。(ie依舊慢半拍)。無(wú)奈,只好針對(duì)ie進(jìn)行擴(kuò)展:
復(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"));
這里我們針對(duì)Array的原型進(jìn)行了擴(kuò)展,在擴(kuò)展方法的命名上我加上了"_"字符,我認(rèn)為這是一個(gè)好的習(xí)慣,當(dāng)你在針對(duì)原型進(jìn)行擴(kuò)展的時(shí)候有必要對(duì)自己的擴(kuò)展加以標(biāo)記。
在_indexOf方法中,我們首先判斷當(dāng)前Array是否實(shí)現(xiàn)了"indexOf" 方法,如果是的話直接調(diào)用系統(tǒng)發(fā)法,否則進(jìn)行遍歷。
相關(guān)文章
JavaScript基礎(chǔ)教程——入門(mén)必看篇
下面小編就為大家?guī)?lái)一篇JavaScript基礎(chǔ)教程——入門(mén)必看篇。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05

javascript中arguments,callee,caller詳解
javascript中arguments,caller,callee 是什么?
在javascript 中有什么樣的作用?本篇會(huì)對(duì)于此做一些基本介紹。希望大家能夠喜歡。
2016-03-03 
簡(jiǎn)單介紹JavaScript的變量和數(shù)據(jù)類(lèi)型
這篇文章主要介紹了簡(jiǎn)單介紹JavaScript的變量和數(shù)據(jù)類(lèi)型,是JS入門(mén)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
2015-06-06 
原生的強(qiáng)大DOM選擇器querySelector介紹
這篇文章主要介紹了原生的強(qiáng)大DOM選擇器querySelector一些相關(guān)知識(shí),需要的朋友可以參考下
2016-12-12