JS中every()和some() -Kaiqisan

JS中every()和some()的用法

Kaiqisanです,一つの学生プログラマーである。今天开启这个专栏,也是我在以后需要重点保养的第一个专栏,javascript是每个前端工程师必须要熟练于心的一个编程语言,虽然我学习了js有一年多了,但在看面试题和别人的代码的时候,总是会发现我不认识的js代码块,所以这个专刊主要从我学习过程中觉得重要和冷门有用的一些方法或思维或易错的坑出发,从这边文章开始,就开启新的旅程吧!!。

在敲代码的时候,您是否还在使用for循环来实现对数组元素的甄别呢? 大人,时代变了! 现在ES6出了新的方法,可以更快地进行甄别,它针对全体数据,通过条件,排除出’异端’。

  • some()是对数组中每一项运行给定函数,如果该函数对任一项返回true,则返回true。
  • every()是对数组中每一项运行给定函数,如果该函数对每一项返回true,则返回true。

下面,请看源码!

var arr = [ 1, 2, 3, 4, 5, 6 ]; 

console.log( arr.some( 
	function( item, index, array ){ 
    console.log( 'item=' + item + ',index='+index+',array='+array ); 
    return item > 3; 
	}
)); 

console.log( arr.every( function( item, index, array ){ 
    console.log( 'item=' + item + ',index='+index+',array='+array ); 
    return item > 3; 
})); // 第一个数字就不符合了,所以就报false并返回了

结果为

img
some和every方法内都有一个function,它能实现自动的迭代,第一个参数为当前迭代的成员,第二个参数为当前迭代的成员数组下标,第三个为数组全体数据。

some一直在找符合条件的值,一旦找到,则不会继续迭代下去。并返回true(如果找不到符合的值则一直不返回值) ,如果找不到的话,则返回false.
every从迭代开始,一旦有一个不符合条件,则不会继续迭代下去。并返回false,(如果找不到符合的值则一直不返回值) 如果找不到的话,则返回true.

总结

其实呢,也不是说不使用这个方法就是不好,这个方法也有这个方法的局限,它只能返回一个true或false,方法本身能实现的功能太过局限,只能判断不符合条件的元素,面对这种情况,我们还有其他自动迭代方法比如map方法和for…in方法,但咱们还是抓紧这个方法,如果遇到极其适合使用这个方法的场合就请务必使用这个方法,你会发现这个方法极其方便。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kaiqisan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值