JavaScript some() 语法
some() 是 JavaScript 数组的一个方法,它用于判断是否存在一个元素能通过给定的测试函数。
语法:
arr.some(callbackFn, thisArg)说明:
some() 方法可以接收以下 2 个参数。
callbackFn(必选):是一个回调函数,每一个数组元素都会经过它的检查。thisArg(可选):回调函数 this 的值,默认值为 undefined。该参数一般不需要手动设置。
callbackFn 这个回调函数的形式如下:
function (element, index, array) {
……
}callbackFn 回调函数接收 3 个参数,说明如下。
element(必选):表示当前处理的数组元素。index(可选):表示当前处理的数组元素对应的下标。array(可选):表示当前数组对象(代表整个数组)。
some() 方法最终会返回一个布尔值。只要有一个元素能通过给定的测试时,some() 就会返回 true。只有当所有元素都无法通过给定的测试函数时,some() 才会返回 false。
注意: 空数组使用 some(),返回的结果一定是 false。
JavaScript some() 摘要
| 属于 | JavaScript Array 对象 |
|---|---|
| 使用频率 | 中 |
| 修改原数组 | 否 |
| 官方文档 | 查看 |
| MDN | 查看 |
JavaScript some() 示例
接下来,我们通过几个简单的例子来讲解一下 JavaScript some() 方法是如何使用的。
示例 1:some() 基本用法
function isOdd(element, index, array) {
return element % 2 === 1;
}
const nums = [2, 4, 6, 7, 8];
console.log(nums.some(isOdd));运行结果如下。
true分析:
在这个例子中,我们自定义了一个 isOdd() 函数,用于判断某个值是否为奇数。然后将 isOdd() 作为 some() 的回调函数,此时就表示判断数组中是否存在元素为奇数。由于数组 nums 中 “7” 符合条件,因此 nums.some(isOdd) 返回 true。
示例 2:some() 使用箭头函数
const nums = [2, 4, 6, 7, 8];
const result = nums.some(element => element % 2 === 1);
console.log(result);运行结果如下。
true分析:
some() 方法的回调函数也可以是一个箭头函数。
some() 与 every()、filter() 的区别
some()、every()、filter() 这 3 个方法非常相似它们的区别如下。
some():用于判断数组中是否存在一个元素满足某个条件,返回的是一个 “布尔值” 。只要有一个满足,那么就返回 true;只有全部都不满足,才会返回 false。every():用于判断数组中所有元素是否都满足某个条件,返回的是一个 “布尔值” 。如果全部都满足,那么就返回 true;只要有一个不满足,那么就返回 false。filter():用于从数组中筛选出所有满足某个条件的元素,返回的是一个 “新数组” 。如果回调函数对当前元素返回 true,则该元素会被包含在新数组中。如果回调函数对当前元素返回 false,则该元素会被排除在新数组之外。
其中,every() 方法类似于 “与运算”,而 some() 方法类似于 “或运算”。小伙伴们这样去对比,会更容易理解和记忆。
在实际开发中,至于选择使用哪个方法,这个取决于你的开发需求。
- 如果你只需要确认至少一个元素符合条件,则推荐使用 some()。
- 如果你需要确认所有元素都符合条件,则推荐使用 every()。
- 如果你需要获取所有符合条件的元素到一个新数组中,则推荐使用 filter()。
