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


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鼠标滑过图片震动特效的方法
Feb 17 Javascript
理解javascript函数式编程中的闭包(closure)
Mar 08 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
Sep 24 Javascript
Node实战之不同环境下配置文件使用教程
Jan 02 Javascript
ejsExcel模板在Vue.js项目中的实际运用
Jan 27 Javascript
JSONP原理及应用实例详解
Sep 13 Javascript
vue自定义tap指令及tap事件的实现
Sep 18 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
May 03 Javascript
微信小程序实现下拉框功能
Jul 16 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
Sep 07 Javascript
使用vuex存储用户信息到localStorage的实例
Nov 11 Javascript
浅谈vue中$bus的使用和涉及到的问题
Jul 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制作静态网站的模板框架
2006/10/09 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
PHP中“简单工厂模式”实例代码讲解
2012/09/04 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
laradock环境docker-compose操作详解
2019/07/29 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
Jquery iframe内部出滚动条
2010/02/11 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
python静态方法实例
2015/01/14 Python
简单介绍Python中的len()函数的使用
2015/04/07 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
Python探索之SocketServer详解
2017/10/28 Python
Python根据成绩分析系统浅析
2019/02/11 Python
Python的几种主动结束程序方式
2019/11/22 Python
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
销售总监岗位职责
2014/01/04 职场文书
物流管理专业求职信
2014/05/29 职场文书
2014年党务工作总结
2014/11/25 职场文书
汽车转让协议书
2015/01/29 职场文书
入党个人总结范文
2015/03/02 职场文书
毕业生入职感言
2015/07/31 职场文书
餐厅开业活动方案
2019/07/08 职场文书