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 Array.remove() 数组删除
Aug 06 Javascript
iframe的onreadystatechange事件在firefox下的使用
Apr 16 Javascript
javascript中call,apply,bind的用法对比分析
Feb 12 Javascript
javascript判断数组内是否重复的方法
Apr 21 Javascript
js编写贪吃蛇的小游戏
Aug 24 Javascript
Javascript操作dom对象之select全面解析
Apr 24 Javascript
Angularjs验证用户输入的字符串是否为日期时间
Jun 01 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
Sep 21 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
Sep 05 Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
Nov 11 Javascript
微信小程序自定义支持图片的弹窗
Dec 21 Javascript
微信小程序实现轮播图指示器
Jun 25 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
php基础知识:控制结构
2006/12/13 PHP
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
爱恋千雪-US-AscII加密解密工具(网页加密)下载
2007/06/06 Javascript
提高网站信任度的技巧
2008/10/17 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
JS实现页面打印(整体、局部)
2017/08/18 Javascript
基于Require.js使用方法(总结)
2017/10/26 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
python脚本设置超时机制系统时间的方法
2016/02/21 Python
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
批量将ppt转换为pdf的Python代码 只要27行!
2018/02/26 Python
win7 x64系统中安装Scrapy的方法
2018/11/18 Python
python-opencv颜色提取分割方法
2018/12/08 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
TensorFlow索引与切片的实现方法
2019/11/20 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
解决TensorFlow程序无限制占用GPU的方法
2020/06/30 Python
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
解决python 输出到csv 出现多空行的情况
2021/03/24 Python
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript