js--数组的every()和some()方法检测数组是否满足条件的使用介绍
- 前言
阅读本文之前先来思考一个问题,如何如实现判断一个数组中是否存在满足条件的元素,如何去判断数组中是否全部元素都满足判断条件,这里可能能想到使用for循环遍历数组,if()判断每一项是否符合条件,同样也可以使用forEach()遍历,filter()过滤出满足条件的元素并判断元素个数...这里介绍一下js数组的every和some方法。
- 正文
1.every()
基本概念:
every() 方法用于检测非空数组中所有元素是否都符合指定条件(通过函数提供),如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。
分析:every方法针对非空数组进行检测,检测条件通过回调函数作为入参传递,返回值为布尔类型true或者false,若每个元素都通过检测才返回true,且该方法不会改变原数组。
一旦找到不符合检测条件的元素就返回false,否则遍历全部元素。
使用语法:
array.every(function(currentValue,index,array),thisValue)
接受两个参数,第一个参数为传入的回调函数,该函数又三个参数,currentValue参数必选,为当前检测的元素,index为当前元素的索引,array为当前检测的数组,第二个参数可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
根据自己的理解先来动手实现上面的功能
function myEvery(array,rules){
//非空判断
if(array.length==0){
alert('请传入非空数组')
}
let res=true
for (let index = 0; index < array.length; index++) {
if(!rules(array[index])){
res=false
break
}
}
return res
}
var arr=[0,1,2,3,4]
var rules = function(value){
return value > -1 ? true : false
}
console.log(myEvery(arr,rules))//输出true
2.some()
基本概念:
some()方法用于检测数组中的元素是否满足指定条件(函数提供)。如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。
分析:some()方法针对非空数组进行检测,检测条件通过回调函数作为入参传递,返回值为布尔类型true或者false,若存在任意元素通过检测就参会true,且该方法不会改变原数组。
一旦找到符合条件的就返回true,否则遍历全部元素。
使用语法:
array.some(function(currentValue,index,array),thisValue)
接受两个参数,第一个参数为传入的回调函数,该函数又三个参数,currentValue参数必选,为当前检测的元素,index为当前元素的索引,array为当前检测的数组,第二个参数可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
根据自己的理解先来动手实现上面的功能
function mySome(array,rules){
if(array.length==0){
alert('请传入非空数组')
}
let res=false
for (let index = 0; index < array.length; index++) {
if(rules(array[index])){
res=true
break
}
}
return res
}
var arr=[0,1,2,3,4]
var rules = function(value){
return value > 3 ? true : false
}
console.log(mySome(arr,rules))//输出true
- 常见使用
用every和some实现上面同样的效果
var arr=[0,1,2,3,4]
let res1=arr.every(v=>v>-1)
let res2=arr.some(v=>v>3)
console.log(res1)//输出true
console.log(res2)//输出true
every()和some()使用到的地方比较少,不太常见,需要在学习工作中多家联系使用吧!
js--数组的every()和some()方法检测数组是否满足条件的使用介绍的更多相关文章
- Java 数组的三种创建方法,数组拷贝方法
public static void main(String[] args) {//创建数组的第一种方法int[] arr=new int[6];int intValue=arr[5];//Syste ...
- js 判断数组包含某值的方法 和 javascript数组扩展indexOf()方法
var questionId = []; var anSwerIdValue = []; ////javascript数组扩展indexOf()方法 Array.prototype.indexOf ...
- JS 中检测数组的四种方法
今天和大家分享一下 JS 中检测是不是数组的四种方法,虽然篇幅不长,不过方法应该算是比较全面了. 1. instanceof 方法 instanceof 用于检测一个对象是不是某个类的实例,数组也是一 ...
- js -【 数组】判断一个变量是数组类型的几种方法
怎么判断一个数组是数组呢? 其实这个也是一个常考的题目.依稀记得我为数不多的面试经过中都被问道过. 方案一: instanceof variable instanceof Array 解决思路: 使用 ...
- 【js实例】Array类型的9个数组方法,Date类型的41个日期方法,Function类型
前文提要:[js实例]js中的5种基本数据类型和9种操作符 Array类型的9个数组方法 Array中有9个数组方法: 1.检测数组 2.转换方法 3.栈方法 4.队列方法 5.冲排序方法6.操作方法 ...
- js数组去重的几种方法
1.遍历数组法 最简单的去重方法, 实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中:注意点:判断值是否在数组的方法“indexOf”是ECMAScript5 方法,IE8以下不支持 ...
- JS数组去重的9种方法(包括去重NaN和复杂数组类型)
其实网上已经有很多js数组的去重方法,但是我看了很多篇并自己通过代码验证,发现都有一些缺陷,于是在研究多篇代码之后,自己总结了9种方法,如果有哪里不对请及时纠正我哈~ 转载请表明出处 测试代码 let ...
- JS高程5.引用类型(3)Array类型-检测数组
1. instanceof操作符(ECMAScript3) 对于一个网页,或者是一个全局作用域而言,使用instanceof操作符来检测数组就可以得到满意的结果. 语法:if(value instan ...
- js数组去重的4种方法
js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法 贴入代码前 ,先对浏览器Array对象进行支持indexOf和forEach的polyfill Array.prototype.inde ...
随机推荐
- (七)if/else就是goto
一.CPU如何执行指令 CPU上有数以亿计的晶体管组层的复杂电路,我们先不用管具体电路如何实现:逻辑上我们可以认为CPU由许多寄存器组成,而这些寄存器又由许多锁存器和触发器组成,N个锁存器或触发器就可 ...
- PyQt(Python+Qt)学习随笔:Designer中ItemViews类部件frameShape属性
老猿Python博文目录 老猿Python博客地址 frameShape属性是从QFrame继承的属性,对应类型为QFrame.Shape,该属性表示框架样式中的框架形状,有如下取值: 老猿Pytho ...
- Fiddle过滤目标主机
测试某管理系统,查看接口的调用: 点击Actions->Run Filterset now,即可过滤出设置的域名. 若使用通配符*,可将含域名的一级二级域名过滤出.
- js 转为整数之Number()、parseInt()、parseFloat()区别
一:Number() 如果是Boolean值,true和false值将分别被转换为1和0. 如果是数字值,只是简单的传入和返回. 如果是null值,返回0. 如果是undefined,返回NaN. 如 ...
- Python术语对照表
>>> 交互式终端中默认的 Python 提示符.往往会显示于能以交互方式在解释器里执行的样例代码之前. ... 可以是指:交互式终端中输入特殊代码行时默认的 Python 提示符, ...
- NOI Online 题解
T1 对\(t_i = 1\)的边,将\(u_i, v_i\)连一条边权为\(1\)的边.否则连一条边权为\(0\)的边. 对于每一个连通块,若图中不存在一条边权之和为奇数的圈,则可以将这个连通块二染 ...
- mongodb 学习之——mongod --help 中文解释
中文解释如下: -------------------------------------------------------------------------------- --quiet # 安 ...
- Docker 安装 Redis 需要注意的地方
Docker 安装 Redis 需要注意的地方 拉取镜像 docker pull redis 可以使用redis:xxx xxx为版本号,不写默认是latest 启动容器 无配置文件无密码: dock ...
- 深入浅出java的Map
HashMap的组成 首先了解数组和链表两个数据结构 1.数组 寻址容易,插入和删除元素困难 数组由于是紧凑连续存储,可以随机访问,通过索引快速找到对应元素,而且相对节约存储空间. 但正因为连续存储, ...
- react第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能)
第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能) #课程目标 理解因为react的单向数据流 理解表单组件会因为react数据流变的不好维护 理解受控组件与非受控组件的实质区别 理解 ...