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

复制代码 代码如下:

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

时间: 2024-09-24 15:14:32

快速查找数组中的某个元素并返回下标示例_javascript技巧的相关文章

Javascript获取数组中的最大值和最小值的方法汇总_javascript技巧

比较数组中数值的大小是比较常见的操作,比较大小的方法有多种,比如可以使用自带的sort()函数,下面来介绍如下几种方法,代码如下: 方法一: //最小值 Array.prototype.min = function() { var min = this[0]; var len = this.length; for (var i = 1; i < len; i++){ if (this[i] < min){ min = this[i]; } } return min; } //最大值 Array

获取数组中最大最小值方法js代码(自写)_javascript技巧

现在获取数组中最大最小值用的越来越多了,于是乎我编了个方法供大家使用.代码如下,若有问题可以与我联系,咱们一起学习一起进步. 复制代码 代码如下: function getMaximin (arr,maximin) { if (maximin == "max") { return Math.max.apply(Math, arr); }else if (maximin == "min") { return Math.min.apply(Math, arr); } }

快速解决js中window.location.href不工作的问题_javascript技巧

E6中在html中<a>标识中通过JS添加click事件调用一个JS函数,例如: < script type = "text/javascript" > function jump () { window . location . href = 'http://www.jb51.net' ; } function enjoy () { return false ; } < /script> html代码: <a href= "java

js中scrollTop()方法和scroll()方法用法示例_javascript技巧

本文实例讲述了js中scrollTop()方法和scroll()方法用法.分享给大家供大家参考,具体如下: 设置滚动条据顶部的高度: $("div").scrollTop(100); //把 scroll top offset 设置为 100px 获得滚动条的高度: $("div").scrollTop()://获得 scroll top offset 触发滚动事件 $(selector).scroll() 将函数绑定到滚动事件中: $(selector).scro

javascript中解析四则运算表达式的算法和示例_javascript技巧

在编写代码时我们有时候会碰到需要自己解析四则运算表达式的情况,本文简单的介绍使用JavaScript实现对简单四则运算表达式的解析. 一.熟悉概念 中缀表示法(或中缀记法)是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间(例:3 + 4).也就是我们最常用的算术表达式,中缀表达式对于人类来说比较容易理解,但是不易于计算机解析. 逆波兰表示法(Reverse Polish notation,RPN,或逆波兰记法),是一种是由波兰数学家扬·武卡谢维奇1920年引入的数学表达式

avascript中的自执行匿名函数应用示例_javascript技巧

Javascript中的自执行匿名函数 格式: (function(){ //代码 })(); 解释:这是相当优雅的代码(如果你首次看见可能会一头雾水:)),包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数. 来个带参数的例子: (function(arg){ alert(arg+100); })(20); // 这个例子返回120. 重要用途:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装

JavaScript中对象属性的添加和删除示例_javascript技巧

复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /* * 用.为对象添加属性 用关键字delete删除属性 用[]添加属性 和.的不同 r.name==r["name

PHP去除数组中的空值元素(array

说来惭愧,以前在去掉数组的空值是都是强写foreach或者while的,利用这两个语法结构来删除数组中的空元素,简单代码如下: <?php foreach($arr as $k=>$v){ if(!$v) unset($arr[$k]); } 事实证明如果数组过大的情况下这样处理的效率并不高.因为foreach是将当前操作的数组进行copy,每操作一下foreach,都是copy了一个变量,页面里面如果有太多的foreach,会是一个很大的消耗. 在网上闲逛的时候,看到人有提示用array_f

[经典面试题]排序数组中绝对值最小元素

[题目] 题目为: 有一个已经排序的数组(升序),数组中可能有正数.负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现 例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4. [分析] 给定数组是已经排好序的,且是升序,没有重复元素. 一个简单的思路,就是一次性遍历数组,求出数组的元素的绝对值的最小值,这样的时间复杂度为O(n). 但是,这样就浪费了题目的一个条件:数组是已经排好序的.所以,需要对原来的题目