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


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 相关文章推荐
javascript编程起步(第一课)
Jan 10 Javascript
js刷新框架子页面的七种方法代码
Nov 20 Javascript
php图像生成函数之间的区别分析
Dec 06 Javascript
javascript中定义私有方法说明(private method)
Jan 27 Javascript
js由下向上不断上升冒气泡效果实例
May 07 Javascript
3种js实现string的substring方法
Nov 09 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
Mar 30 Javascript
JavaScript位移运算符(无符号) &gt;&gt;&gt; 三个大于号 的使用方法详解
Mar 31 Javascript
AngularJS读取JSON及XML文件的方法示例
May 25 Javascript
Angular4学习笔记之准备和环境搭建项目
Aug 01 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 jQuery
JS实现简单九宫格抽奖
Jun 28 Javascript
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判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
javascript 数组操作详解
2015/01/29 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
AngularJS实现表单手动验证和表单自动验证
2015/12/09 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
JavaScript 身份证号有效验证详解及实例代码
2016/10/20 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
Python的for和break循环结构中使用else语句的技巧
2016/05/24 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
python用户管理系统的实例讲解
2017/12/23 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
Python和Go语言的区别总结
2019/02/20 Python
python binascii 进制转换实例
2019/06/12 Python
Python交互式图形编程的实现
2019/07/25 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
Python类及获取对象属性方法解析
2020/06/15 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
C语言开发工程师测试题
2016/12/20 面试题
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
小学社团活动总结
2014/06/27 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫