js判断数组是否包含某个元素

时间: 2018-11-30阅读: 6484标签: array

js判断js 判断某变量是否为某数组中的一个值的4种方法(总结),分享给大家。


方法一:indexOf()

function IsInArray(arr,val){ 
	return arr.indexOf(val)!==-1;
	
} 
var arr=[1,2,3];
IsInArray(arr,3);//true

注:IE8以下的Array并没有indexOf这个方法,解决办法,把一下代码放在你的indexOf方法的上面:

if(!Array.prototype.indexOf){
	Array.prototype.indexOf = function(elt){
		var len = this.length >>> 0;
		var from = Number(arguments[1]) || 0;
		from = (from < 0) ? Math.ceil(from) : Math.floor(from);
		if(from < 0)
			from += len;
		for(; from < len; from++) {
			if(from in this && this[from] === elt){
				return from;
			}	
		}
		return -1;
	};
}


方法二:正则表达式

Array.prototype.in_array=function(e){
	var r=new RegExp(','+e+',');
	return r.test(','+this.join(this.S)+',');
};

var arr = [1, 2, 3];
arr.in_array(3);//true

注:此函数只对字符和数字有效。


方法三:arr.find() 

function IsInArray(arr, val) {
	var rel=arr.find((v) => {
		return v == val
	});
	return rel?true:false; 
}
var arr = [1, 2, 3];
IsInArray(arr,3);//true

find()函数用来查找目标元素,找到就返回该元素,找不到返回undefined,  是es6里的。除了上面形式,还可以通过arr.find(callback) 在回调中判断。

function IsInArray(arr, val,callback) {
	arr.find(v => {
	    if (v === val){
	      callback()
	      }
	})
}
var arr = [1, 2, 3];
IsInArray(arr,3,()=>{
	console.log("arr数组中包含了3")
});
//arr数组中包含了3


方法四:for循环结合if判断

Array.prototype.in_array = function (val) { 
  for (var i = 0; i < this.length; i++) { 
  	if (this[i] == val) { 
  		return true; 
    } 
  } 
  return false;
} 
var arr = [1, 2, 3];
arr.in_array(3)//true

该方法兼容性较好,也是平时开发中最常用的方式。


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/1454

关闭

JS 将有父子关系的数组转换成树形结构数据

将有父子关系的数组数据先分为两类,一类是没有父节点的数据(取个别名parents),另一类是有父节点的数据(取个别名children),然后通过遍历parents,对每一个父节点在children查找对应的子节点,并将其放入父节点的children中(这里我的是以children表示子节点),然后每个子节点又作为一个父节点来重复之前的动作

认识array method的reduce

reduce属于javascript「synchronize同步」的array method,他就是把一整个array的所有内容,有顺序性的挤压squeeze最后变成一个值

如何快速的创建一个包含100个元素的数组

如何快速的创建一个包含100个元素的数组, 最初见到的问题是如何创建100个为元素为0 的数组,研究了一系列的方法,包含Es6 新的API ,不得不说, ES6 好强大!

在 Array.filter 中正确使用 Async

在第一篇文章中,我们介绍了 async / await 如何帮助处理异步事件,但在异步处理集合时却无济于事。在本文中,我们将研究该filter函数,它可能是支持异步函数的最直观的方法。

js中split()和join() 的使用_数组对象和字符串的相互转换

在前端开发中,相信大家都遇到过数组和字符串相互转换的情况 ,JavaScript提供了split()和join()这2个函数来进行转换,下面就介绍数组对象和字符串的相互转换。

arguments转化成Array数组的方法

简单说一下arguments,arguments 就是函数内一个內建对象,它包含函数接收到的所有变量;所以,在实际开发中,我们使用arguments可以很方便的获取到所有的实参,并且也需要对其使用是写数组的方法

从非数组对象转数组方法小结

从非数组对象转数组方法:Array.prototype.slice.call(obj、Array.from(obj)、[…obj]、Object.values(obj)等

Array.slice 8种不同用法

在深入研究一些更高级的用法之前,让我们看一下slice方法的基础知识。如MDN文档,slice 是数组上的一个方法,它最多有两个参数,从该索引处开始提取原数组中的元素,如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取

JS取出两个数组中的不同或相同元素

concat() 方法:用于连接两个或多个数组。Array filter() 方法:创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。indexOf() 方法:可返回某个指定的字符串值在字符串中首次出现的位置。

js中数组创建的多种方式,数组中常用方法总汇

javascript创建数组的几种方式:1、字面量形式直接创建数组,2、Array构造函数创建数组。js数组常用的方法有哪些:join(),push()和pop(),shift() 和 unshift(),sort(),reverse(),concat()等

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!