//常規實現一:
function isHasElementOne(arr,value ){
for(var i = 0,vlen = arr.length; i if(arr[i] == value){
return i;
}
}
return -1;
}
//實作二:
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 ",)|(, " value "$)"
value = value.toString().replace(/([|])/g,"\$1");
var reg1 = new RegExp("((^|,) " value "(,|$))","gi");
return str.replace(reg1,"$2@$3").replace(/[^,@]/g,"").indexOf( "@");
}else{
return -1;//不存在此項
}
}
最近在寫jquery的combobox外掛時遇到效率問題,再加上jquery選擇器的類帥選,導致效率很慢。採用方式二後,效率明顯提升。