快速查找数组中的某个元素并返回下标示例


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选择器的类帅选,导致效率很慢。采用方式二后,效率明显有所提升。
Javascript 相关文章推荐
让你的网站可编辑的实现js代码
Oct 19 Javascript
Javascript 函数parseInt()转换时出现bug问题
May 20 Javascript
js遍历子节点子元素附属性及方法
Aug 19 Javascript
当前流行的JavaScript代码风格指南
Sep 10 Javascript
jQuery源码解读之removeAttr()方法分析
Feb 20 Javascript
基于javascript实现右下角浮动广告效果
Jan 08 Javascript
js实现简单的碰壁反弹效果
Aug 30 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
Jan 17 Javascript
jQuery中元素选择器(element)简单用法示例
May 14 jQuery
微信小程序里引入SVG矢量图标的方法
Sep 20 Javascript
ant-design-vue按需加载的坑的解决
May 14 Javascript
vue打开新窗口并实现传参的图文实例
Mar 04 Vue.js
iframe的父子窗口之间的对象相互调用基本用法
Sep 03 #Javascript
使用jquery hover事件实现表格的隔行换色功能示例
Sep 03 #Javascript
使用js操作cookie的一点小收获分享
Sep 03 #Javascript
jquery 实现窗口的最大化不论什么情况
Sep 03 #Javascript
jQuery动态添加删除select项(实现代码)
Sep 03 #Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
Sep 02 #Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
Sep 02 #Javascript
You might like
简单谈谈php延迟静态绑定
2016/01/26 PHP
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
Python中输出ASCII大文字、艺术字、字符字小技巧
2015/04/28 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
Django实现组合搜索的方法示例
2018/01/23 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
HTML5制作表格样式
2016/11/15 HTML / CSS
贝尔帐篷精品店:Bell Tent Boutique
2019/06/12 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
应届大专生自荐书
2014/06/16 职场文书
个人收入证明范本
2015/06/12 职场文书
毕业证明模板
2015/06/19 职场文书
开票证明
2015/06/23 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书
Mybatis是这样防止sql注入的
2021/12/06 Java/Android