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 相关文章推荐
JSON扫盲帖 JSON.as类教程
Feb 16 Javascript
清空上传控件input file的值
Jul 03 Javascript
理解Javascript_03_javascript全局观
Oct 11 Javascript
JavaScript学习点滴 call、apply的区别
Oct 22 Javascript
关于Javascript作用域链的八点总结
Dec 06 Javascript
JavaScript学习笔记之Function对象
Jan 22 Javascript
JS中的Replace方法使用经验分享
May 20 Javascript
js实现鼠标点击左上角滑动菜单效果代码
Sep 06 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
Sep 19 Javascript
jQuery 插件实现随机自由弹跳气泡样式
Jan 12 Javascript
详解VUE里子组件如何获取父组件动态变化的值
Dec 26 Javascript
JavaScript 实现同时选取多个时间段的方法
Oct 17 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
构建简单的Webmail系统
2006/10/09 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
PHP实现简易图形计算器
2020/08/28 PHP
简化版手机端照片预览组件
2015/04/13 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
OpenLayers3实现对地图的基本操作
2020/09/28 Javascript
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
python实现同时给多个变量赋值的方法
2015/04/30 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
python 通过可变参数计算n个数的乘积方法
2019/06/13 Python
django model object序列化实例
2020/03/13 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
利用Python优雅的登录校园网
2020/10/21 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
电子商务专业学生职业生涯规划
2014/03/07 职场文书
纠风工作实施方案
2014/03/15 职场文书
医院党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
学校中秋节活动总结
2015/03/23 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
Nginx限流和黑名单配置
2022/05/20 Servers
MySQL数据库表约束讲解
2022/06/21 MySQL