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中的有名函数和无名函数
Oct 17 Javascript
jQuery find和children方法使用
Jan 31 Javascript
jquery插件制作 自增长输入框实现代码
Aug 17 jQuery
jquery实现图片裁剪思路及实现
Aug 16 Javascript
JavaScript中setInterval的用法总结
Nov 20 Javascript
JS关闭窗口时产生的事件及用法示例
Aug 20 Javascript
微信小程序 引入es6 promise
Apr 12 Javascript
jQuery上传插件webupload使用方法
Aug 01 jQuery
Vue.js 2.0和Cordova开发webApp环境搭建方法
Feb 26 Javascript
浅谈Node框架接入ELK实践总结
Feb 22 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
Aug 12 Javascript
微信小程序实现下拉加载更多商品
Dec 29 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 error_log 函数的使用
2009/04/13 PHP
php实现用户在线时间统计详解
2011/10/08 PHP
php基于curl扩展制作跨平台的restfule 接口
2015/05/11 PHP
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
js转换对象为xml
2017/02/17 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
js实现随机点名器精简版
2020/06/29 Javascript
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
python的id()函数介绍
2013/02/10 Python
python设置检查点简单实现代码
2014/07/01 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
应届本科生推荐信范文
2013/12/25 职场文书
2014年教师培训的自我评价
2014/01/03 职场文书
面包店的创业计划书范文
2014/01/16 职场文书
社保委托书怎么写
2014/08/02 职场文书
三问三解心得体会
2014/09/05 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
请客吃饭开场白
2015/06/01 职场文书
周一问候语大全
2015/11/10 职场文书
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
MySQL索引失效场景及解决方案
2022/07/23 MySQL