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 动态生成表格示例代码
Dec 24 Javascript
10个很棒的jQuery代码片段
Sep 24 Javascript
JQuery实现简单的图片滑动切换特效
Nov 22 Javascript
Angular4学习笔记之新建项目的方法
Jul 18 Javascript
关于前后端json数据的发送与接收详解
Jul 30 Javascript
VueJS事件处理器v-on的使用方法
Sep 27 Javascript
基于vue开发的在线付费课程应用过程
Jan 25 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
Mar 17 Javascript
layui table 参数设置方法
Aug 14 Javascript
微信小程序-API接口安全详解
Jul 16 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
Aug 11 Javascript
JS不要再到处使用绝对等于运算符了
Apr 30 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
轻松修复Discuz!数据库
2008/05/03 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
PHP中strtr字符串替换用法详解
2014/11/26 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
Javascript &amp; DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
Javascript 表单之间的数据传递代码
2008/12/04 Javascript
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
基于jQuery的弹出消息插件 DivAlert之旅(一)
2010/04/01 Javascript
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
extjs中form与grid交互数据(record)的方法
2013/08/29 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
2017/06/13 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
[06:04]DOTA2英雄梦之声Vol19卓尔游侠
2014/06/20 DOTA
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
使用python实现省市三级菜单效果
2016/01/20 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
python numpy和list查询其中某个数的个数及定位方法
2018/06/27 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
html5指南-1.html5全局属性(html5 global attributes)深入理解
2013/01/07 HTML / CSS
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
军训阅兵新闻稿
2015/07/17 职场文书
二胎满月酒致辞
2015/07/29 职场文书
2016年教师新年寄语
2015/08/18 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL
Python语言中的数据类型-序列
2022/02/24 Python
python实现学生信息管理系统(面向对象)
2022/06/05 Python