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


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 相关文章推荐
浅谈重写window对象的方法
Dec 29 Javascript
JavaScript中的原始值和复杂值
Jan 07 Javascript
微信小程序 Template详解及简单实例
Jan 05 Javascript
js数字计算 误差问题的快速解决方法
Feb 28 Javascript
vue-cli的webpack模板项目配置文件分析
Apr 01 Javascript
jQuery滚动插件scrollable.js用法分析
May 25 jQuery
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
Feb 01 Javascript
vue input输入框模糊查询的示例代码
May 22 Javascript
Nuxt配合Node在实际生产中的应用详解
Aug 07 Javascript
javascript设计模式之迭代器模式
Jan 30 Javascript
在VUE style中使用data中的变量的方法
Jun 19 Javascript
jQuery实现简单评论功能
Aug 19 jQuery
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基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
angular-ui-sortable实现可拖拽排序列表
2016/12/28 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
2019/05/07 Javascript
在vue中实现echarts随窗体变化
2020/07/27 Javascript
nodejs+express最简易的连接数据库的方法
2020/12/23 NodeJs
跟老齐学Python之集合的关系
2014/09/24 Python
python静态方法实例
2015/01/14 Python
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
Java如何格式化日期
2012/08/07 面试题
工作交流会欢迎词
2014/01/12 职场文书
教堂婚礼主持词
2014/03/14 职场文书
心理健康日活动总结
2014/05/08 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
杨善洲电影观后感
2015/06/04 职场文书
七年级作文之雪景
2019/11/18 职场文书
Python编程根据字典列表相同键的值进行合并
2021/10/05 Python
openstack云计算keystone组件工作介绍
2022/04/20 Servers