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


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 相关文章推荐
Firebug 字幕文件JSON地址获取代码
Oct 28 Javascript
Js-$.extend扩展方法使方法参数更灵活
Jan 15 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
Mar 31 Javascript
原生js和jQuery随意改变div属性style的名称和值
Oct 22 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
Jun 05 Javascript
jquery表单验证插件formValidator使用方法
Apr 01 Javascript
jQuery ajaxForm()的应用
Oct 14 Javascript
纯JS实现轮播图
Feb 22 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
Dec 23 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
Sep 01 Javascript
JS中比Switch...Case更优雅的多条件判断写法
Sep 05 Javascript
Vue组件基础用法详解
Feb 05 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
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
php 获取当前访问的url文件名的方法小结
2010/02/08 PHP
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
JS实现切换标签页效果实例代码
2013/11/01 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
JavaScript知识点总结(十)之this关键字
2016/05/31 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
利用scrapy将爬到的数据保存到mysql(防止重复)
2018/03/31 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
Python GUI Tkinter简单实现个性签名设计
2018/06/19 Python
python 实现汉诺塔游戏
2020/11/28 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
浅谈关于html5中图片抛物线运动的一些心得
2018/01/09 HTML / CSS
介绍一下内联、左联、右联
2013/12/31 面试题
STP的判定过程
2012/10/01 面试题
生日宴会主持词
2014/03/20 职场文书
运输服务质量承诺书
2014/03/27 职场文书
人事局接收函
2015/01/30 职场文书
总经理致辞
2015/07/29 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
2019中小学生安全过暑期倡议书
2019/06/24 职场文书