JS判断元素是否在数组内的实现代码
一、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判断数组重复内容的两种方法(推荐)
前言 一般,我们可能会给数组去重,这个操作并不复杂,执行一个循环就是了.现在,我要做的是,判断数组中是否有重复的内容,如果有,返回 true 否则,返回 false. 思路 把数组变成字符串 循环原数组,拿每一个字段和这个字符串进行比对,看是否有重复 如何拿A字符串和B字符串进行对比,并且要求判断出B字符串中包含过个A字符串呢? 方法一 indexOf() 和 lastIndexOf() 对比法. 首先,我们构建代码: var arr = ["aa","bb",&q
-
JavaScript判断数组是否包含指定元素的方法
本文实例讲述了JavaScript判断数组是否包含指定元素的方法.分享给大家供大家参考.具体如下: 这段代码通过prototype定义了数组方法,这样就可以在任意数组调用contains方法 /** * Array.prototype.[method name] allows you to define/overwrite an objects method * needle is the item you are searching for * this is a special variab
-
JS判断数组那点事
面试题中有个这样题目 如何判断数组 大家都知道哪些方法 其实有时候 明明知道哪些方法 但在关键时候就是说不上来 typeof运算符 typeof会返回这个类型的字符串 var a = '123' console.log(typeof(a)) //string var b = [] console.log(typeof(b)) //object var c = {} console.log(typeof(c)) //object var d = null console.log(typeof(d)
-
JavaScript判断变量是否为数组的方法(Array)
今天小编给大家整理些关于javascript判断变量是否是数组(Array)的相关知识,主要通过以下四点给大家展开话题,具体内容如下所示: 1. typeof真的那么厉害吗?? //首先看代码 var ary = [1,23,4]; console.log(typeof ary); //输出结果是Object 上面的办法并不能实时的检测出是否是数组,只能判断其类型,所以说typeof判断基本类型数据还是挺好的,但是不能准确测试出是否是数组(typeof的具体用法以后提及,现在回归正题) 2.in
-
JavaScript判断数组是否存在key的简单实例
JS中复合数组associative array和对象是等同的,判断一个key是否存在于数组中(或对象是否包含某个属性),不能使用ary[key] == undefined,因为可能存在ary = {key:undefined};正确的方法应该为: ary.hasOwnProperty(key); 或 obj.hasOwnProperty(key); 另外使用key-value pair对复合数组或对象进行loop的时候应该使用: for(var key in ary) { document.w
-
判断数组是否包含某个元素的js函数实现方法
判断数组是否包含某个元素的js函数实现方法 Array.prototype.contains = function(obj) { var i = this.length; while (i--) { if (this[i] === obj) { return true; } } return false; } 或 Array.prototype.contains = function(element) { for (var i = 0; i < this.length; i++) { if (t
-
JS判断元素是否在数组内的实现代码
一.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) :
-
利用JS判断元素是否为数组的方法示例
此处提供可供验证的数据类型 let a = [1,2,3,4,5,6]; let b = [ {name: '张飞', type: 'tank'}, {name: '关羽', type: 'soldier'}, {name: '刘备', type: 'shooter'}, ]; let c = 123; let d = 'www'; let e = {name: '安琪拉', type: 'mage'}; 1.通过Array.isArray() Array.isArray()能判断一个元素是否为
-
基于JS判断对象是否是数组
这篇文章主要介绍了基于JS判断对象是否是数组,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.通过instanceof判断 instanceof运算符用于检验构造函数的prototype属性是否出现在对象的原型链中的任何位置,返回一个布尔值. let a = []; a instanceof Array; //true let b = {}; b instanceof Array; //false 在上方代码中,instanceof运算符检测
-
如何利用JS检查元素是否在视口内
前言 分享两个监测元素是否在视口内的方法 1. 位置计算 使用 Element.getBoundingClientRect() 方法返回元素相对于视口的位置 const isElementVisible = (el) => { const rect = el.getBoundingClientRect(); }; 获取浏览器窗口的宽高 const isElementVisible = (el) => { const rect = el.getBoundingClientRect(); cons
-
js判断手机号是否正确并返回的实现代码
js判断手机号是否正确并返回的代码,具体代码如下所示: <form method="post" action="login.php" onsubmit="return abc()"> <input type="text" id="phone" /> <input type="submit" value="登录"/> </for
-
JS判断元素为数字的奇异写法分享
这是在阅读underscore(1.3.3)源码中看到的,它的each方法 复制代码 代码如下: var each = _.each = _.forEach = function(obj, iterator, context) { if (obj == null) return; if (nativeForEach && obj.forEach === nativeForEach) { obj.forEach(iterator, context); } else if (obj.lengt
-
js判断一点是否在一个三角形内
*{margin:0;padding:0;} function a(x,y,color) {document.write("")} function line(x1,y1,x2,y2,color) { var tmp; if(x1>=x2) { tmp=x1; x1=x2; x2=tmp; tmp=y1; y1=y2; y2=tmp; } for(var i=x1;i0&&r20) { return "在三角形内!"; } else {retu
-
js判断元素是否隐藏的方法
复制代码 代码如下: if( document.getElementById("div").css("display")==='none') if( document.getElementById("div").css("display")==='block') $("#div").is(":hidden"); // 判断是否隐藏 $("#div").is("
-
通过JS判断联网类型和连接状态的实现代码
中国的移动网络环境复杂,为了给用户带去更好访问体验,开发者希望能了解用户当前的联网方式,然后给用户一个符合当前网络环境的请求结果. W3C的规范中给出了一个方法来获得现在的网络状态navigator.connection:根据Working Draft 29 November 2012协议规范我们可以从接口中获得bandwidth(带宽,M/s)和metered两个参数的值:还提供了一个监听方法,来时刻监听接入环境的变化情况.现实中我们发现很多浏览器并没有返回bandwidth值,而且遵守了Wo
-
js判断ie方法集锦(含正则)代码短小经典 原创
是否是Opera: is_opera = /opera/i.test(navigator.userAgent); alert(is_opera); [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 是否是IE: is_opera = /opera/i.test(navigator.userAgent); var is_ie = (/msie/i.test(navigator.userAgent) && !is_opera) alert(is_ie); [Ctrl+A 全选 注:如
随机推荐
- 负数与二进制换转方法
- jquery新的绑定事件机制on方法的使用方法
- Tomcat7中开启gzip压缩功能的配置方法
- JS SetInterval 代码实现页面轮询
- js实现模糊匹配功能
- asp.net Cookie值中文乱码问题解决方法
- Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
- Linux下模拟实现进度条实例详解
- 什么是 WSH(脚本宿主)的详细解释
- 必须会的SQL语句(四) 数据删除和更新
- Navicat for MySQL(mysql图形化管理工具)是什么?
- js传参数受特殊字符影响错误的解决方法
- 一个js封装的不错的选项卡效果代码
- Java成员变量与局部变量(动力节点Java学院整理)
- Python使用Flask框架获取当前查询参数的方法
- php单链表实现代码分享
- jsp中checkbox用法详解
- 完美解决IIS 服务器无法加载应用程序 ‘/LM/W3SVC/1/ROOT’。错误是:没有注册类别
- Java实现的RSA加密解密算法示例
- ajax请求data遇到的问题分析