前言: 在以外的开发中,接触过some这个方法,但是只限于在代码里看见过,还没有自己去了解并且写过,今天碰到个需求时发现使用some这个方法真香,写此文章加深印象。
定义和用法
some() 方法检查数组中的任何元素是否通过测试(作为函数提供)。
some() 方法对数组中存在的每个元素执行一次函数:
- 如果找到函数返回真值的数组元素,some() 返回真(并且不检查剩余值)
- 否则返回 false
注释:
-
some() 对没有值的数组元素不执行函数。
-
some() 不改变原始数组。
使用场景
一般是需要对数组里面每一项内容进行循环匹配时会用到,有一项满足条件时就会返回true,否则为false,示例代码如下:(当找到大于15的时候,就会返回true)
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age > 15;
}
// ages中有一个大于15的数就会进入判断
if (ages.some(checkAdult)) {
// to do
}
刚好在刷力扣的最长公共前缀这道题时用到了这个方法,真香。地址:https://leetcode.cn/problems/longest-common-prefix/
扩展
JS中除了some()还有个对应every()方法
定义和用法
every() 方法检查数组中的所有元素是否都通过了测试(被作为函数提供)。
every() 方法对数组中存在的每个元素执行一次函数:
- 如果找到函数返回 false 值的数组元素,every() 返回 false(并且不检查剩余值)
- 如果没有出现 false,every() 返回 true
注释:
-
every() 不对没有值的数组元素执行函数。
-
every() 不改变原始数组。
使用场景
一般是需要对数组里面每一项内容进行循环匹配时会用到,有一项不满足条件时就会返回false,否则为true,示例代码如下:(当找到大于15的时候,就会返回true)
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age < 21;
}
// ages中全部小于21时才会进入判断
if (ages.every(checkAdult)) {
// to do
}