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


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 相关文章推荐
jquery 框架使用教程 AJAX篇
Oct 11 Javascript
Jquery插件之多图片异步上传
Oct 20 Javascript
JavaScript插件化开发教程(五)
Feb 01 Javascript
RGB和YUV 多媒体编程基础详细介绍
Nov 04 Javascript
JavaScript简单实现合并两个Json对象的方法示例
Oct 16 Javascript
详解使用 Node.js 开发简单的脚手架工具
Jun 08 Javascript
微信小程序实现聊天对话(文本、图片)功能
Jul 06 Javascript
GOJS+VUE实现流程图效果
Dec 01 Javascript
jQuery实现消息弹出框效果
Dec 10 jQuery
微信小程序实现签字功能
Dec 23 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
Feb 21 Javascript
keep-alive不能缓存多层级路由菜单问题解决
Mar 10 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二维/三维数组转字符串
2013/09/13 PHP
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
汇总PHPmailer群发Gmail的常见问题
2016/02/24 PHP
php实现socket推送技术的示例
2017/12/20 PHP
纯文字版返回顶端的js代码
2013/08/01 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
Angular2入门--架构总览
2017/03/29 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
JS控制只能输入数字并且最多允许小数点两位
2019/11/24 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
python使用正则筛选信用卡
2019/01/27 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
Under Armour澳大利亚官网:美国知名的高端功能性运动品牌
2018/02/22 全球购物
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
计算机学生求职信范文
2014/01/30 职场文书
2014最新离职证明范本
2014/09/12 职场文书
安全生产工作汇报材料
2014/10/28 职场文书
司考复习计划
2015/01/19 职场文书
遗愿清单观后感
2015/06/09 职场文书
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android