ホームページ  >  記事  >  ウェブフロントエンド  >  配列内の要素をすばやく見つけて添え字を返す example_javascript スキル

配列内の要素をすばやく見つけて添え字を返す example_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 17:23:412911ブラウズ
コードをコピー コードは次のとおりです:

//一般的な実装 1:
function isHasElementOne( arr,value ){
for(var i = 0,vlen = arr.length; i if(arr[i] == value){
return i; 🎜>}
}
return -1;
}
//実装 2:
function isHasElementTwo(arr,value){
var str = arr.toString(); 🎜>var Index = str.indexOf(value);
if(index >= 0){
//戻りインデックスがあります
var reg1 = new RegExp("((^|,) " value "(, |$))","gi");
return str.replace(reg1,"$2@$3").replace(/[^,@]/g,"").indexOf( "@");
}else{
return -1;//この項目は存在しません
}
}


補足:


コードをコピーします コードは次のとおりです:
function isHasElement(arr,value){
var str = arr .toString();
var Index = str.indexOf(value);
if(index >= 0){
//インデックスが存在します
//"(^" value ", )|(," 値 ",) |(," 値 "$)"
値 = value.toString().replace(/([|])/g,"\$1");
var reg1 = new RegExp("((^ |,)" 値 "(,|$))","gi");
return str.replace(reg1,"$2@$3").replace(/[^ ,@]/g,"") .indexOf("@");
}else{
return -1;//この項目は存在しません
}
}


最近 jquery コンボボックスを作成しているときに、プラグイン時に効率の問題が発生し、jquery セレクターのクラス選択と相まって、効率が非常に遅くなりました。 2 番目の方法を採用した後、効率は明らかに向上しました。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。