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 相关文章推荐
js form 验证函数 当前比较流行的错误提示
Jun 23 Javascript
javascript实例--教你实现扑克牌洗牌功能
May 15 Javascript
JavaScript设计模式之适配器模式介绍
Dec 28 Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 Javascript
遍历js中对象的属性和值的实例
Nov 21 Javascript
如何判断出一个js对象是否一个dom对象
Nov 24 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
Jan 12 Javascript
详解node.js搭建代理服务器请求数据
Apr 08 Javascript
新手vue构建单页面应用实例代码
Sep 18 Javascript
BootStrap table实现表格行拖拽效果
Dec 01 Javascript
js计时事件实现圆形时钟
Mar 25 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
Dec 17 Vue.js
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笔记之:日期函数的使用介绍
2013/04/24 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
Yii2 queue的队列使用详解
2019/07/19 PHP
Jquery iframe内部出滚动条
2010/02/11 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
vue移动端写的拖拽功能示例代码
2020/09/09 Javascript
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
python数据结构之二叉树的建立实例
2014/04/29 Python
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
python 性能优化方法小结
2017/03/31 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
扩展Django admin的list_filter()可使用范围方法
2019/08/21 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
python接入支付宝的实例操作
2020/07/20 Python
python调用私有属性的方法总结
2020/07/24 Python
PyQt5的QWebEngineView使用示例
2020/10/20 Python
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
实习护理工作自我评价
2013/09/25 职场文书
会计毕业生自我鉴定
2013/11/04 职场文书
村庄绿化方案
2014/05/07 职场文书
党课培训心得体会
2014/09/02 职场文书
党校党性分析材料
2014/12/19 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript