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 firefox不显示本地预览图片问题的解决方法
Nov 12 Javascript
Mootools 1.2教程 同时进行多个形变动画
Sep 15 Javascript
使用js对select动态添加和删除OPTION示例代码
Aug 12 Javascript
jquery.post用法之type设置问题
Feb 24 Javascript
ie 7/8不支持trim的属性的解决方案
May 23 Javascript
js操作模态窗口及父子窗口间相互传值示例
Jun 09 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
Apr 03 Javascript
基于Vue2.0的分页组件
Mar 16 Javascript
vue项目中使用axios上传图片等文件操作
Nov 02 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
Dec 11 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
Sep 30 Javascript
Javascript类型判断相关例题及解析
Aug 26 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
一个程序下载的管理程序(四)
2006/10/09 PHP
php排序算法(冒泡排序,快速排序)
2012/10/09 PHP
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
jquery 与NVelocity 产生冲突的解决方法
2011/06/13 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
JavaScript中的分号插入机制详细介绍
2015/02/11 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
vue中如何实现pdf文件预览的方法
2018/07/12 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
vue自定义指令实现方法详解
2019/02/11 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
python实现的udp协议Server和Client代码实例
2014/06/04 Python
Python MySQL数据库连接池组件pymysqlpool详解
2017/07/07 Python
python中实现控制小数点位数的方法
2019/01/24 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
2020/09/03 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
西班牙自行车和跑步商店:Alltricks
2018/07/07 全球购物
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
中班下学期幼儿评语
2014/12/30 职场文书
营销计划书
2015/01/17 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS