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 getElementsByClassName 和js取地址栏参数
Jan 02 Javascript
JSQL  一个 web DB 的封装
May 05 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
Dec 21 Javascript
实现前后端数据交互方法汇总
Apr 07 Javascript
深入解读JavaScript中的Iterator和for-of循环
Jul 28 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
Sep 17 Javascript
JS调用某段SQL语句的方法
Oct 20 Javascript
BootStrap Datetimepicker 汉化的实现代码
Feb 10 Javascript
JavaScript实现跟随滚动缓冲运动广告框
Jul 15 Javascript
layui点击弹框页面 表单请求的方法
Sep 21 Javascript
vue学习之Vue-Router用法实例分析
Jan 06 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
Apr 11 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
打造计数器DIY三步曲(下)
2006/10/09 PHP
PHP一些有意思的小区别
2006/12/06 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
Yii2使用swiftmailer发送邮件的方法
2016/05/03 PHP
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
jQuery qrcode生成二维码的方法
2016/04/03 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Python下线程之间的共享和释放示例
2015/05/04 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
深入理解Python中装饰器的用法
2016/06/28 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
selenium+Chrome滑动验证码破解二(某某网站)
2019/12/17 Python
使用Python操作ArangoDB的方法步骤
2020/02/02 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
幼儿园实习自我鉴定
2013/12/15 职场文书
代理班主任的自我评价
2014/02/04 职场文书
安全生产管理责任书
2014/04/16 职场文书
小学三年级学生评语
2014/04/22 职场文书
商家认证委托书格式
2014/10/16 职场文书
同学聚会通知书
2015/04/20 职场文书
主持人大赛开场白
2015/05/29 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
创业计划书之旅游网站
2019/09/06 职场文书