ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptにおけるindexOfの使い方と問題点まとめ_基礎知識

JavaScriptにおけるindexOfの使い方と問題点まとめ_基礎知識

WBOY
WBOYオリジナル
2016-05-16 18:21:451221ブラウズ

このメソッドは非常に便利です。多くのプログラミング言語に対応する実装があり、JavaScript も例外ではありません。IE で次のコードを実行すると、

コードをコピーします。 🎜> コードは次のとおりです:
var arr = [1,2,3];
alert(arr.indexOf(1));

しかし、「オブジェクトはこのプロパティとメソッドをサポートしていません」というメッセージが表示されました。クロムとFFでは問題なく動作します。そこでGoogleの専門家に尋ねたところ、jsのArrayのindexOfメソッドはjs1.6バージョンでのみ実装されており、IE7と8ではjs1.3バージョンのみが実装されており、chromeはjs1.7バージョン、ffはjs1.8であることがわかりました。バージョン。 (つまり、さらに半拍遅くなります)。仕方なく IE 用に拡張します:


Array.prototype. _indexOf = function(n){
if("indexOf" in this){
return this["indexOf"](n);
for(var i=0;iif(n===this[i]){
return i;
}
return
};


は次のように使用されます:



コードをコピーします
コードは次のとおりです。 var arr = ["1","2","3"] alert(arr._indexOf("2"));ここでは、Array プロトタイプを拡張しました。拡張では、メソッドの名前に「_」文字を追加しました。これは、プロトタイプを拡張するときに、拡張子をマークする必要があると思います。
_indexOf メソッドでは、まず現在の配列が「indexOf」メソッドを実装しているかどうかを判断します。実装している場合は、システム メソッドを直接呼び出します。そうでない場合は、システム メソッドが実行されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。