JS判断元素是否在数组内的实现代码


Posted in Javascript onMarch 30, 2016

一、JQuery

如果是用JQuery的话,可以用inArray()函数:

jquery inarray()函数详解
jquery.inarray(value,array)
确定第一个参数在数组中的位置(如果没有找到则返回 -1 )。

determine the index of the first parameter in the array (-1 if not found).
返回值
jquery
参数
value (any) : 用于在数组中查找是否存在
array (array) : 待处理数组。

用法为:

$.inArray(value, array) 

二、自己写函数

function contains(arr, obj) {
  var i = arr.length;
  while (i--) {
    if (arr[i] === obj) {
      return true;
    }
  }
  return false;
}

用法为:

var arr = new Array(1, 2, 3);

contains(arr, 2);//返回true

contains(arr, 4);//返回false

三、给Array增加一个函数

Array.prototype.contains = function (obj) {
  var i = this.length;
  while (i--) {
    if (this[i] === obj) {
      return true;
    }
  }
  return false;
}

使用方法:

[1, 2, 3].contains(2); //返回true

[1, 2, 3].contains('2'); //返回false

四、使用indexOf

但是有个问题是IndexOf在某些IE版本中是不兼容的,可以用下面的方法:

if (!Array.indexOf) {
  Array.prototype.indexOf = function (obj) {
    for (var i = 0; i < this.length; i++) {
      if (this[i] == obj) {
        return i;
      }
    }
    return -1;
  }
}

先判断Array是否有indexOf方法,如果没有就扩展出此方法。

所以上面代码要写在使用indexOf方法的代码之前:

var arr = new Array('1', '2', '3');
if (!Array.indexOf) {
  Array.prototype.indexOf = function (obj) {
    for (var i = 0; i < this.length; i++) {
      if (this[i] == obj) {
        return i;
      }
    }
    return -1;
  }
}
var index = arr.indexOf('1');//为index赋值为0
Javascript 相关文章推荐
window.onbeforeunload方法在IE下无法正常工作的解决办法
Jan 23 Javascript
js 控制图片大小核心讲解
Oct 09 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
Dec 25 Javascript
基于jQuery实现的无刷新表格分页实例
Feb 17 Javascript
JS闭包与延迟求值用法示例
Dec 22 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
Jan 19 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
Mar 17 Javascript
node.js调用Chrome浏览器打开链接地址的方法
May 17 Javascript
Angular4 Select选择改变事件的方法
Oct 09 Javascript
详解puppeteer使用代理
Dec 27 Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 Javascript
Vue实现微信支付功能遇到的坑
Jun 05 Javascript
javascript检查某个元素在数组中的索引值
Mar 30 #Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
Mar 30 #Javascript
谈一谈js中的执行环境及作用域
Mar 30 #Javascript
js实现(全选)多选按钮的方法【附实例】
Mar 30 #Javascript
用JS生成UUID的方法实例
Mar 30 #Javascript
如何通过js实现图片预览功能【附实例代码】
Mar 30 #Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
Mar 30 #Javascript
You might like
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
2014/06/03 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
js轮播图的插件化封装详解
2017/07/17 Javascript
AngularJS的$location使用方法详解
2017/10/19 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
JavaScript动态生成表格的示例
2020/11/02 Javascript
python获取文件后缀名及批量更新目录下文件后缀名的方法
2014/11/11 Python
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
Python编程给numpy矩阵添加一列方法示例
2017/12/04 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
查看keras的默认backend实现方式
2020/06/19 Python
如何验证python安装成功
2020/07/06 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
内勤主管岗位职责
2014/04/03 职场文书
中学生运动会口号
2014/06/07 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书
争先创优心得体会
2014/09/12 职场文书
小学教师党员承诺书
2015/04/27 职场文书
同事打架检讨书
2015/05/06 职场文书
奔腾年代观后感
2015/06/09 职场文书
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python