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 相关文章推荐
js利用数组length属性清空和截短数组的小例子
Jan 15 Javascript
HTML5实现留言和回复页面样式
Jul 22 Javascript
jQuery语法小结(超实用)
Dec 31 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
Dec 31 Javascript
微信小程序 video组件详解
Oct 25 Javascript
老生常谈原生JS执行环境与作用域
Nov 22 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
Nov 25 Javascript
使用微信小程序开发前端【快速入门】
Dec 05 Javascript
package.json配置文件构成详解
Aug 27 Javascript
JS通用方法触发点击事件代码实例
Feb 17 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
Aug 05 Javascript
利用JavaScript模拟京东按键输入功能
Dec 01 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 字符串函数收集
2010/03/29 PHP
PHP中读写文件实现代码
2011/10/20 PHP
php中将html中的br换行符转换为文本输入中的换行符
2013/03/26 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
2014/10/31 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
浅谈angularJS的$watch失效问题的解决方案
2017/08/11 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
使用javascript做在线算法编程
2018/05/25 Javascript
微信小程序使用canvas的画图操作示例
2019/01/18 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python中pip安装非PyPI官网第三方库的方法
2015/06/02 Python
使用Python解析JSON数据的基本方法
2015/10/15 Python
用Python进行简单图像识别(验证码)
2018/01/19 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
django使用JWT保存用户登录信息
2020/04/22 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
在家更换处方镜片:Lensabl
2019/05/01 全球购物
《中国的气候》教学反思
2014/02/23 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
2014年生产管理工作总结
2014/12/23 职场文书