JavaScript中的every(),some(),filter()和map()

every(),some(),filter(),map()都是Array对象的方法
语法: array.every(function(value,index,arr),thisValue)
它们都有两个参数

  • 每一项上运行的函数,必填

    function(value,index,arr)

     value表示当前元素的值,必填
     index表示当前元素的索引,选填
     arr表示当前元素所属于的数组对象,也就是使用该数组的方法
    
  • 运行该函数的作用域对象,选填

    thisValue

     该对象作为回调函数时使用,用来传递给函数
    

every() some() filter() map()都不会改变原数组

接下来是对它们分别举例子

1. every()
返回一个Boolean,用于判断数组中每个元素是否符合function的条件。
只要有一个元素不满足条件,返回false,不会继续检查剩余的元素
只有当所有元素都满足条件时,返回true。

	var arr = [1,2,3,4,5];
	var result = arr.every(function(value){
		return value > 3;
	});
	var result2 = arr.every(function(value){
		return value > 0;
	});
	console.log(result); //false 因为arr中并非所有元素都大于3
	console.log(result2);  //true 因为arr中的所有元素都大于0

2. some()
返回一个Boolean,用于判断数组中是否有满足function中条件的元素。
只要有一个元素满足条件,直接返回true,不会继续检查剩余的元素
只有当所有元素都不满足条件时,返回false。

var arr  = [1,2,3,4,5];
var result = arr.some(function(value){
	return value > 4;
});	
var result2 = arr.some(function(value){
	return value > 6;
});
console.log(result); //true arr中含有大于4的元素 
console.log(result2); //false arr中没有大于6的元素

3. filter()
返回一个数组,数组中包含所有满足function中条件的元素,如果没有满足条件的元素,则返回一个空数组。

var arr = [1,2,3,4,5];
	var result = arr.filter(function(value){
		return value > 2;
	});
	var result2 = arr.filter(function(value){
		return value > 6;
	});
	console.log(result);  //[3,4,5] arr中大于2的元素为 3,4,5
	console.log(result2); // []  arr中没有大于6的元素,所以返回空数组

4. map()
返回一个新数组,数组的元素是由原数组中的每个元素调用了function函数之后产生的结果组成。

var arr = [1,2,3,4,5];
	var result = arr.map(function(value){
		return value*2;
	});
	console.log(result); //[2,4,6,8,10] arr中的每个元素乘2后组成新的数组

它们的区别可以从英文意思上去记忆,every是每一个的意思,所以在判断时要数组中的每一个元素都满足才返回true,否则返回false; some是一些,若干的意思,所以判断时,仅需要有一个元素满足条件即可返回true,所有元素都不满足才返回false;filter是过滤,而filter()方法差不多也算是将数组中符合条件的元素过滤出来组成一个新的数组的意思。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值