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 相关文章推荐
用jscript实现列出安装的软件列表
Jun 18 Javascript
javascript 无提示关闭窗口脚本
Aug 17 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
js中一维数组和二位数组中的几个问题示例说明
Jul 17 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
Jan 13 Javascript
transport.js和jquery冲突问题的解决方法
Feb 10 Javascript
面向切面编程(AOP)的理解
May 01 Javascript
vue 插值 v-once,v-text, v-html详解
Jan 19 Javascript
vue.js中proxyTable 转发请求的实现方法
Sep 20 Javascript
微信小程序本地存储实现每日签到、连续签到功能
Oct 09 Javascript
JavaScript console的使用方法实例分析
Apr 28 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
May 25 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中批量修改文件后缀名的函数代码
2011/10/23 PHP
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
php获得url参数中具有&amp;的值的方法
2014/03/05 PHP
discuz目录文件资料汇总
2014/12/30 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
JavaScript模拟push
2016/03/06 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
微信小程序中转义字符的处理方法
2019/03/28 Javascript
es6中使用map简化复杂条件判断操作实例详解
2020/02/19 Javascript
js实现右键弹出自定义菜单
2020/09/08 Javascript
python 图片验证码代码
2008/12/07 Python
python使用分治法实现求解最大值的方法
2015/05/12 Python
Python语法快速入门指南
2015/10/12 Python
python实现获取Ip归属地等信息
2016/08/27 Python
Python中join()函数多种操作代码实例
2020/01/13 Python
python3中的logging记录日志实现过程及封装成类的操作
2020/05/12 Python
HTML5移动端开发中的Viewport标签及相关CSS用法解析
2016/04/15 HTML / CSS
TCP/IP的分层模型
2013/10/27 面试题
Shell如何接收变量输入
2012/09/24 面试题
毕业生求职简历的自我评价
2013/10/07 职场文书
项目经理任命书范本
2014/06/05 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
公司租房协议书范本
2014/10/08 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
SQL实战演练之网上商城数据库商品类别数据操作
2021/10/24 MySQL