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 相关文章推荐
使用户点击后退按钮使效三行代码
Jul 07 Javascript
Javascript绝句欣赏 一些经典的js代码
Feb 22 Javascript
javascript 实现简单的table排序及table操作练习
Dec 28 Javascript
Javascript 浮点运算精度问题分析与解决
Mar 26 Javascript
jquery easyui 结合jsp简单展现table数据示例
Apr 18 Javascript
node.js Web应用框架Express入门指南
May 28 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
Nov 15 Javascript
浅析JS中对函数function的理解(基础篇)
Oct 14 Javascript
js实现带三角符的手风琴效果
Mar 01 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
May 17 Javascript
Javascript柯里化实现原理及作用解析
Oct 22 Javascript
微信小程序实现滚动Tab选项卡
Nov 16 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 Ajax中文乱码问题解决方法
2009/02/27 PHP
php cookie的操作实现代码(登录)
2010/12/29 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
2013/06/24 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
对PHP PDO的一些认识小结
2015/01/23 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
网上应用的一个不错common.js脚本
2007/08/08 Javascript
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
2011/11/14 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
利用JS测试目标网站的打开响应速度
2017/12/01 Javascript
Vue波纹按钮组件制作
2018/04/30 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
Python素数检测实例分析
2015/06/15 Python
Django中对数据查询结果进行排序的方法
2015/07/17 Python
python编程开发之日期操作实例分析
2015/11/13 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
玩具公司的创业计划书
2013/12/31 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
常住证明范本
2015/06/23 职场文书
Django分页器的用法你都了解吗
2021/05/26 Python