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


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错误的解决方案
Aug 07 Javascript
可在线编辑网页文字效果代码(单击)
Mar 02 Javascript
JavaScript分析、压缩工具JavaScript Analyser
Dec 31 Javascript
jQuery中closest和parents的区别分析
May 07 Javascript
javascript与Python快速排序实例对比
Aug 10 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
Jan 23 Javascript
switch语句的妙用(必看篇)
Oct 03 Javascript
C#微信小程序服务端获取用户解密信息实例代码
Mar 10 Javascript
JavaScript实现移动端轮播效果
Jun 06 Javascript
最基础的vue.js双向绑定操作
Aug 23 Javascript
iview中Select 选择器多选校验方法
Mar 15 Javascript
vue倒计时刷新页面不会从头开始的解决方法
Mar 03 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
星际争霸任务指南——神族
2020/03/04 星际争霸
PHP Socket 编程
2010/04/09 PHP
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
PHP常用技巧汇总
2016/03/04 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
python SQLAlchemy的Mapping与Declarative详解
2019/07/04 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
在python中做正态性检验示例
2019/12/09 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
python解释器安装教程的方法步骤
2020/07/02 Python
德国足球商店:OUTFITTER
2019/05/06 全球购物
德国珠宝和配件商店:Styleserver
2021/02/23 全球购物
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
领导干部培训感言
2014/01/23 职场文书
求职意向书范文
2014/04/01 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
关于MybatisPlus配置双数据库驱动连接数据库问题
2022/01/22 Java/Android
MongoDB支持的索引类型
2022/04/11 MongoDB