Posted in Javascript onSeptember 03, 2013
//常规实现一: function isHasElementOne(arr,value){ for(var i = 0,vlen = arr.length; i < vlen; 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选择器的类帅选,导致效率很慢。采用方式二后,效率明显有所提升。
快速查找数组中的某个元素并返回下标示例
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@