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


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+xml技术实现分页浏览
Jul 27 Javascript
js如何获取file控件的完整路径具体实现代码
May 15 Javascript
javascript 手动给表增加数据的小例子
Jul 10 Javascript
angularjs基础教程
Dec 25 Javascript
jQuery实现网站添加高亮突出显示效果的方法
Jun 26 Javascript
全屏js头像上传插件源码高清版
Mar 29 Javascript
使用jquery提交form表单并自定义action的实现代码
May 25 Javascript
详解ECMAScript6入门--Class对象
Apr 27 Javascript
jsTree事件和交互以及插件plugins详解
Aug 29 Javascript
Javascript异步执行不按顺序解决方案
Apr 30 Javascript
js实现限定区域范围拖拉拽效果
Nov 20 Javascript
二维码条形码生成的JavaScript脚本库
Jul 07 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 array_values 返回数组的值实例详解
2016/11/17 PHP
jqPlot 图表中文API使用文档及源码和在线示例
2012/02/07 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
2016/06/20 Javascript
angular4模块中给标签添加背景图的实现方法
2017/09/15 Javascript
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
Python中使用PDB库调试程序
2015/04/05 Python
Python学习小技巧之列表项的拼接
2017/05/20 Python
Python单例模式的两种实现方法
2017/08/14 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
Selenium的使用详解
2018/10/19 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
Python守护进程实现过程详解
2020/02/10 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
党课学习思想汇报
2014/01/02 职场文书
3的组成教学反思
2014/04/30 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
歌剧魅影观后感
2015/06/05 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
python绘制箱型图
2021/04/27 Python
SQL Server2019数据库备份与还原脚本,数据库可批量备份
2021/11/20 SQL Server
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers