关闭

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

时间: 2018-11-30阅读: 7173标签: 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.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

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

JavaScript数组中的22个常用方法

数组总共有22种方法,本文将其分为对象继承方法、数组转换方法、栈和队列方法、数组排序方法、数组拼接方法、创建子数组方法、数组删改方法、数组位置方法、数组归并方法和数组迭代方法共10类来进行详细介绍

js实现交换数组元素位置的方法总汇

交换数组元素位置是开发项目中经常用到的场景,总结下用过的几种方式:第三方变量、splice方法、解构赋值

js中reduce的用法,如何使用reduce函数

reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组

js 数组方法,包含ES6方法

JavaScript常用数组操作方法:concat() 方法用于连接两个或多个数组。join() 方法用于把数组中的所有元素放入一个字符串。push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。pop() 方法用于删除并返回数组的最后一个元素。

js判断对象、数组是否为空

做项目时想要根据判断对象是否为空,然后执行不同的操作,下面就整理下如何实现,针对数组和对象的通用方法。方法一:isPrototypeOf()和length判断、方法二:hasOwnProperty、方法三:利用JSON.stringify()方法

es6中 Array.from()函数的用法

ES6为Array增加了from函数用来将其他对象转换成数组,Array.from可以接受三个参数,我们看定义:Array.from(arrayLike [, mapFn [, thisArg]])。arrayLike:被转换的的对象。 mapFn:map函数。 thisArg:map函数中this指向的对象。

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

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

for in 和 for of的区别详解

for in 和 for of 相对于大家肯定都不陌生,都是用来遍历属性的没错。for ... in 循环返回的值都是数据结构的 键值名。遍历对象返回的对象的key值,遍历数组返回的数组的下标(key)。for of 循环用来获取一对键值对中的值,而 for in 获取的是 键名

Array.slice 8种不同用法

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

JS中forEach的用法

orEach是ES5中操作数组的一种方法,主要功能是遍历数组,forEach方法中的function回调有三个参数:第一个参数是遍历的数组内容,第二个参数是对应的数组索引,第三个参数是数组本身

点击更多...

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