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 按回车键相应按钮提交事件
Nov 02 Javascript
Jquery 表格合并的问题分享
Sep 17 Javascript
jquery模拟按下回车实现代码
Sep 20 Javascript
轻松学习Javascript闭包函数
Dec 15 Javascript
js 去掉字符串前后空格实现代码集合
Mar 25 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
Apr 26 Javascript
微信小程序 实现动态显示和隐藏某个控件
Apr 27 Javascript
最基础的vue.js双向绑定操作
Aug 23 Javascript
JS Testing Properties 判断属性是否在对象里的方法
Oct 01 Javascript
基于JavaScript 性能优化技巧心得(分享)
Dec 11 Javascript
Vue 配合eiement动态路由,权限验证的方法
Sep 26 Javascript
Vue Render函数原理及代码实例解析
Jul 30 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如何编写易读的代码
2007/07/10 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
php基础教程
2015/08/26 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
深入分析PHP设计模式
2020/06/15 PHP
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
2016/08/24 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
Vue+mui实现图片的本地缓存示例代码
2018/05/24 Javascript
js数据类型检测总结
2018/08/05 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
2019/06/20 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
2020/04/26 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
python改变日志(logging)存放位置的示例
2014/03/27 Python
python爬虫基本知识
2018/03/05 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
家长对小学生的评语
2014/01/28 职场文书
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
2014会计年终工作总结
2014/12/20 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
python必学知识之文件操作(建议收藏)
2021/05/30 Python