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 相关文章推荐
Javascript学习笔记 delete运算符
Sep 13 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
May 23 Javascript
js动态修改input输入框的type属性(实现方法解析)
Nov 13 Javascript
window.open打开页面居中显示的示例代码
Dec 27 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
Aug 24 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
Mar 05 Javascript
基于jquery实现简单的分页控件
Mar 17 Javascript
AngularJS中的过滤器filter用法完全解析
Apr 22 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
Apr 26 Javascript
Javascript中的arguments对象
Jun 20 Javascript
JS实现全屏的四种写法
Dec 30 Javascript
微信小程序switch开关选择器使用详解
Jan 31 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
php实现可运算的验证码
2015/11/10 PHP
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
jquery checkbox全选、取消全选实现代码
2010/03/05 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
2014/09/25 Javascript
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
Javascript中的高阶函数介绍
2015/03/15 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
javascript事件模型介绍
2016/05/31 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
python 处理dataframe中的时间字段方法
2018/04/10 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
Pycharm无法使用已经安装Selenium的解决方法
2018/10/13 Python
理想高通滤波实现Python opencv示例
2019/01/30 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
Python 如何在字符串中插入变量
2020/08/01 Python
如何编写python的daemon程序
2021/01/07 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
全球高级音频和视频专家:HiDef Lifestyle
2019/08/02 全球购物
ajax是什么及其工作原理
2012/02/08 面试题
J2EE是技术还是平台还是框架
2016/08/14 面试题
小学教师师德演讲稿
2014/05/06 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
法学专业大学生实习自我鉴定
2014/10/05 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
2015年秋季小学开学典礼主持词
2015/07/16 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS