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


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 相关文章推荐
html+css+js实现xp window界面及有关功能
Mar 26 Javascript
jquery js 重置表单 reset()具体实现代码
Aug 05 Javascript
jquery阻止后续事件只执行第一个事件
Jul 24 Javascript
jquery简单实现外部链接用新窗口打开的方法
May 30 Javascript
jQuery原型属性和原型方法详解
Jul 07 Javascript
详解用webpack2.0构建vue2.0超详细精简版
Apr 05 Javascript
vue 实现数字滚动增加效果的实例代码
Jul 06 Javascript
vue上传图片到oss的方法示例(图片带有删除功能)
Sep 27 Javascript
IE9 elementUI文件上传的问题解决
Oct 17 Javascript
js实现橱窗展示效果
Jan 11 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
Aug 31 Javascript
js实现手表表盘时钟与圆周运动
Sep 18 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 格式化数字的时候注意数字的范围
2010/04/13 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
Javascript事件实例详解
2013/11/06 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
深入理解javascript prototype的相关知识
2019/09/19 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
python基础教程之类class定义使用方法
2014/02/20 Python
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
简单说下OSPF的操作过程
2014/08/13 面试题
社区学习十八大感想
2014/01/22 职场文书
在校生自我鉴定
2014/01/23 职场文书
十八届三中全会个人学习材料
2014/02/13 职场文书
心理健康课教学反思
2014/02/13 职场文书
留守儿童工作方案
2014/06/02 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
信息技术研修心得体会
2016/01/08 职场文书
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL