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 相关文章推荐
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
May 13 Javascript
使用jquery实现以post打开新窗口
Mar 19 Javascript
js父页面与子页面不同时显示的方法
Oct 16 Javascript
jQuery控制Div拖拽效果完整实例分析
Apr 15 Javascript
JS模拟bootstrap下拉菜单效果实例
Jun 17 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
Oct 16 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
May 02 Javascript
JavaScript队列函数和异步执行详解
Jun 19 Javascript
JS实现简单的星期格式转换功能示例
Jul 23 Javascript
layer弹出层自定义提交取消按钮的例子
Sep 10 Javascript
JavaScript对象属性操作实例解析
Feb 04 Javascript
vue商城中商品“筛选器”功能的实现代码
Jul 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 XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
php stripslashes和addslashes的区别
2014/02/03 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
web.py获取上传文件名的正确方法
2014/08/26 Python
Python使用matplotlib绘制动画的方法
2015/05/20 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
python编程羊车门问题代码示例
2017/10/25 Python
浅析python协程相关概念
2018/01/20 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
python爬取网页转换为PDF文件
2018/06/07 Python
解决Tensorboard 不显示计算图graph的问题
2020/02/15 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
生物技术专业研究生自荐信
2013/09/22 职场文书
函授本科毕业自我鉴定
2013/10/09 职场文书
挂职思想汇报
2013/12/31 职场文书
考生诚信考试承诺书
2014/05/23 职场文书
计划生育宣传标语
2014/06/21 职场文书
学生安全责任书范本
2014/07/24 职场文书
工作检讨书怎么写
2015/01/23 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL
Python正则表达式中flags参数的实例详解
2022/04/01 Python