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 Tips 使用DocumentFragment加快DOM渲染速度
Jun 28 Javascript
一个简单的JS鼠标悬停特效具体方法
Jun 17 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
Jul 03 Javascript
javascript中定义类的方法汇总
Dec 28 Javascript
微信小程序 location API接口详解及实例代码
Oct 12 Javascript
Vue.js组件通信的几种姿势
Oct 23 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
Jan 25 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 Javascript
localstorage实现带过期时间的缓存功能
Jun 28 Javascript
Vue-cli4 配置 element-ui 按需引入操作
Sep 11 Javascript
vue router返回到指定的路由的场景分析
Nov 10 Javascript
JS代码实现页面切换效果
Jan 10 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个人网站架设连环讲(二)
2006/10/09 PHP
php 保留字列表
2012/10/04 PHP
PHP与Java进行通信的实现方法
2013/10/21 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
php验证session无效的解决方法
2014/11/04 PHP
CI框架常用函数封装实例
2016/11/21 PHP
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
如何正确理解javascript的模块化
2017/03/02 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
微信接入之获取用户头像的方法步骤
2019/09/23 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
跟老齐学Python之Python安装
2014/09/12 Python
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
python使用tornado实现简单爬虫
2018/07/28 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
python 实现批量图片识别并翻译
2020/11/02 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
Intersport西班牙:在线体育商店
2019/11/06 全球购物
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
经济管理毕业生求职信
2014/03/15 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
2015教师节通讯稿
2015/07/20 职场文书
高一地理教学工作总结
2015/08/12 职场文书
文明上网主题班会
2015/08/14 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
python实现自动清理文件夹旧文件
2021/05/10 Python