JS数组方法some、every和find的使用详情
这篇文章 要给大家介绍的是JS数组方法some、every和find的使用的一些相关资料,感兴趣的小伙伴一起来学习吧
目录
1、some
2、every
3、find
1、some
在MDN中这样定义:some()
方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean
类型的值。
简而言之就是:它对数组中的每一项进行校验,只要有一项通过了就是true
。
它只会返回
true
或false
它会对数组中的每一项进行检测,千万不要在
some
里面进行if else
操作不要在
return
后面写true
或false
,return
后面跟的是你的条件
最近做后台管理系统遇到一个需求:弹出一个Dialog
,只要这个Dialog
里面的input
有一个有值,就可以;否则提示至少要有一个值。
数据结构如下,使用some
1 2 3 4 5 6 7 8 9 10 11 | let arr = [ { value: "apple" }, { value: "" }, { value: "banana" }, { value: "orange" }, { value: "" }, ] let res = arr.some(item=>{ return item.value !== "" }) console.log(res); |
在这里,只要有值,res
就为true
,所以我们可以在res
为true
时进行下一步操作。
1 2 3 4 5 | if (res) { console.log( "数组有值" ); } else { console.log( "至少输入一个值" ); } |
2、every
every
的使用方法和some
一样。 在MDN中:every()
方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
简而言之就是:它对数组中的每一项进行校验,只要有一项不通过它就是false
。
注意事项与some
一样。 如果要求每一个输入框中都必须有值时,
1 2 3 4 5 6 7 8 9 10 11 12 | let arr2 = [ { value: "apple" }, { value: "" }, { value: "banana" }, { value: "orange" }, { value: "er" }, ] var res2 = arr2.every(item => { return item.value !== "" }) console.log(res2); |
在这里,只要有一项没有值,res2
就为false
。
1 2 3 4 5 6 7 | if (!res2) { //res2为真,则走else;为假,则走if console.log( "输入框有空值" ); } else { console.log( "输入框没空值" ); console.log( "进行下步操作" ); } |
3、find
在MDN
中,find()
方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
注意:find()和上面两个不一样,它返回的是值,而且是第一个满足条件的值
1 2 3 4 5 6 7 8 9 10 11 | let arr3 = [ { value: "" }, { value: "" }, { value: "" }, { value: "" }, { value: "apple" }, ] var res3 = arr3.find(item => { return item.value !== "" }) console.log(res3); |
可以根据find
的返回值是否为undefined
来判断item
中valu
e,
1 2 3 4 5 6 7 | if (res3) { //res3有值,在这里进行下一步操作。 console.log( "数组中至少有一个值" ); } else { //res3为undefined console.log( "数组为空!" ); } |
到此这篇关于JS数组方法some、every
和find
的使用详情的文章就介绍到这了
原文链接:https://juejin.cn/post/6902992264356691975