快速查找数组中的某个元素并返回下标示例 |
本文标签:查找数组,返回下标 复制代码 代码如下: //常规实现一: 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选择器的类帅选,导致效率很慢 。采用方式二后,效率明显有所提升 。 |