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

代码如下:

//常规实现一:
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选择器的类帅选,导致效率很慢。采用方式二后,效率明显有所提升。

(0)

相关推荐

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

    复制代码 代码如下: //常规实现一: 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(va

  • JS实现查找数组中对象的属性值是否存在示例

    本文实例讲述了JS实现查找数组中对象的属性值是否存在.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var studentsArray = [ { "

  • 利用js查找数组中指定元素并返回该元素的所有索引示例

    前言 这篇文章主要给大家介绍的是利用js查找数组中指定元素并返回该元素的所有索引的相关资料,文中给出了详细的示例代码,下面话不多说,来看看详细的代码示例吧. 示例代码 //在数组中查找所有出现的x,并返回一个包含匹配索引的数组 function findall(a,x){ var results=[], len=a.length, pos=0; while(pos<len){ pos=a.indexOf(x,pos); if(pos===-1){//未找到就退出循环完成搜索 break; } r

  • JS查找数组中重复元素的方法详解

    本文实例讲述了JS查找数组中重复元素的方法.分享给大家供大家参考,具体如下: JS的数据类型有一个数组.今天我们就来谈谈对数组的一种处理.相信很多人都遇到过从数组中查找出不重复的元素,但是我遇到的却是从数组中查找出重复的元素. 从js数组中查找出不重复的元素的方法有很多,下面就给大家列举一个: <!DOCTYPE html> <html> <body> <script> Array.prototype.deleteEle=function(){ var ne

  • Python查找数组中数值和下标相等的元素示例【二分查找】

    本文实例讲述了Python查找数组中数值和下标相等的元素.分享给大家供大家参考,具体如下: 题目描述: 假设一个单调递增的数组中的每个元素都是整数并且是唯一的.请编程实现一个函数,找出数组中任意一个数值等于其下标的元素,例如在数组[-3,-1,1,3,5]中,3和他的下标相等. 采用二分查找:如果数组中的数字小于下标,由于下标是-1的递减数列,但是数组中的元素差值大于等于-1,因此左边的不可能等于下标.如果数组中的数字大于下标,同理,之后的数字肯定都大于下标,往左边查找. 算法示例: # -*-

  • 在python3中实现查找数组中最接近与某值的元素操作

    我就废话不多说了,直接上代码吧! import datetime def find_close(arr, e): start_time = datetime.datetime.now() size = len(arr) idx = 0 val = abs(e - arr[idx]) for i in range(1, size): val1 = abs(e - arr[i]) if val1 < val: idx = i val = val1 use_time = datetime.dateti

  • 在 javascript 中如何快速获取数组指定位置的元素

    目录 前言 数组的 at() 方法 前言 在 JavaScript 中如果我们需要获取一个数组指定位置的元素,通常情况下,我们一般采用以下方法: 1.通过下标直接获取指定元素:arr[index], index 为非负数. let arr = [1, 4, 5, 8, 10] // 获取数组的第一个元素 let num1 = arr[0] // 获取数组的最后一个元素 let num2 = arr[arr.length - 1] // 获取数组的倒数第二个元素 let num3 = arr[ar

  • PHP查找数组中只出现一次的数字实现方法【查找特定元素】

    本文实例讲述了PHP查找数组中只出现一次的数字实现方法.分享给大家供大家参考,具体如下: 问题: 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 实现代码如下: <?php function FindNumsAppearOnce($array) { // write code here // return list, 比如[a,b],其中ab是出现一次的两个数字 $count = array_count_values($array); foreach

  • java中删除 数组中的指定元素方法

    java中删除 数组中的指定元素要如何来实现呢,如果各位对于这个算法不是很清楚可以和小编一起来看一篇关于java中删除 数组中的指定元素的例子. java的api中,并没有提供删除数组中元素的方法.虽然数组是一个对象,不过并没有提供add().remove()或查找元素的方法.这就是为什么类似ArrayList和HashSet受欢迎的原因. 不过,我们要感谢Apache Commons Utils,我们可以使用这个库的ArrayUtils类来轻易的删除数组中的元素.不过有一点需要注意,数组是在大

  • JavaScript去掉数组中的重复元素

    在写程序过程中,经常会遇到去除数组中重复元素的需求.要实现这个功能其实并不难. 我们可以用一个两重循环来实现,对于小的数组,这样做当然并无不妥. 但如果我们的数组比较大,里面的元素有上万个.那么用两重循环,效率是极为低下. 下面我们就用js的特性,编写一个高效去除数组重复元素的方法. 复制代码 代码如下: <script> function unique(data){ data = data || []; var a = {}; for (var i=0; i<data.length;

随机推荐