//一般的な実装 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 番目の方法を採用した後、効率は明らかに向上しました。