数组方法some和every(数组方法some和every的区别)

数组方法some和every(数组方法some和every的区别)英文 nbsp nbsp https www javascripttu net 译文 杨小爱 在上节 我们 学习 如何使用 JavaScript Array every 方法检查所有数组素是否通过 测试 错过的小伙伴可以文章 nbsp JavaScript 教程 第六章 数组 08 every 检查数组中的每个素是否都通过了测试 进行学习 那么 在今天的教程中 我们一起来 学习 如何使用 JavaScript 数组 some



英文 | https://www.javascripttutorial.net/

译文 | 杨小爱


在上节,我们学习如何使用 JavaScript Array every() 方法检查所有数组素是否通过测试错过的小伙伴可以文章《 【JavaScript 教程】第六章 数组08— every() :检查数组中的每个素是否都通过了测试》进行学习。
那么,在今天的教程中,我们一起来学习如何使用 JavaScript 数组 some() 方法检查数组中是否至少有一个素通过了测试。

有时,您想检查数组是否至少有一个满足指定条件的素。

例如,要检查以下数组是否至少有一个小于 5 的素:

 
 
   
   
let marks = [ 4, 5, 7, 9, 10, 3 ];

您通常使用 for 循环,如下所示:

 
 
   
   
let marks = [ 4, 5, 7, 9, 10, 3 ];
let lessThanFive = false;
for (let index = 0; index < marks.length; index++) { if (marks[index] < 5) { lessThanFive = true; break; }}
console.log(lessThanFive);

输出:

 
 
   
   
true

它们是怎么运行的:

  • 首先,声明一个标志变量 lessThanFive 并将其值设置为 false。
  • 其次,迭代素。如果素小于 5,则将该标志设置为 true 并使用 break 语句立即退出循环。

该代码按预期工作。但是,它非常冗长。

Array 类型为您提供了一个名为 some() 的实例方法,它允许您测试一个数组是否至少有一个满足条件的素。

 
 
   
   
let marks = [ 4, 5, 7, 9, 10, 3 ];
lessThanFive = marks.some(function(e) { return e < 5;});
console.log(lessThanFive);

输出

 
 
   
   
true

条件是通过传递给 some() 方法的回调函数来实现的。

现在,代码更短了。为了使其更具表现力,可以使用 ES6 中的箭头函数语法:

 
 
   
   
let marks = [ 4, 5, 7, 9, 10, 3 ];
let lessThanFive = marks.some(e => e < 5);
console.log(lessThanFive);

下面说明了 some() 方法的语法:

 
 
   
   
arrayObject.some(callback[, thisArg]);

some()方法接受两个参数:

1) 回调参数

some() 函数对数组中的每个素执行一次回调函数,直到找到回调函数返回 true 的素。some() 方法立即返回 true 并且不评估剩余的素。

如果没有素导致 callback() 返回 true,则 some() 方法返回 false。

回调函数接受三个参数:

 
 
   
   
function callback(currentElement [[, currentIndex], array]){ // ...}
  • currentElement 是数组中正在处理的当前素。
  • currentIndex 是数组中正在处理的当前素的索引。
  • 该数组是调用 some() 的数组。

2) thisArg 参数

thisArg 参数是可选的。如果将 thisArg 传递给方法,则可以在回调函数中使用 thisArg 作为 this 值。

JavaScript 数组 some() 示例

让我们再举一些使用 some() 方法的例子。

1) 检查数组中是否存在素

以下exists() 函数使用some() 方法检查数组中是否存在值:

 
 
   
   
function exists(value, array) { return array.some(e => e === value);}
let marks = [4, 5, 7, 9, 10, 2];
console.log(exists(4, marks));console.log(exists(11, marks));

输出:

 
 
   
   
truefalse

2) 检查一个数组是否有一个素在一个范围内

以下示例显示如何检查标记数组中的任何数字是否在 (8, 10) 范围内:

 
 
   
   
let marks = [4, 5, 7, 9, 10, 2];
const range = { min: 8, max: 10};
let result = marks.some(function (e) { return e >= this.min && e <= this.max;}, range);
console.log(result);

输出:

 
 
   
   
true

它们是怎么运行的。

  • 首先,定义一个具有 min 和 max 属性的范围对象。
  • 其次,调用标记数组对象上的 some() 方法并传递回调和范围对象。因为我们将范围对象作为第二个参数 (thisArg) 传递,所以我们可以通过 this 值在回调中引用它。

请注意,如果在本示例中使用箭头函数,则回调函数中的 this 值不会绑定到范围对象,而是绑定到全局对象。

注意:空数组

如果对空数组调用 some() 方法,则无论何种条件,结果始终为 false。例如:

 
 
   
   
let result = [].some(e => e > 0);console.log(result);
result = [].some(e => e <= 0);console.log(result);

输出:

 
 
   
   
falsefalse

总结

在本教程中,我们学习了如何使用 JavaScript Array some() 方法来测试数组是否至少有一个满足条件的素。

今天的内容就到这里了。

如果您还想学习更多关于数组的内容,请下文链接进行学习。

【JavaScript 教程】第六章 数组08— every() :检查数组中的每个素是否都通过了测试

【JavaScript 教程】第六章 数组07— index() :在数组中定位一个素

【JavaScript 教程】第六章 数组06— slice() :复制数组素

【JavaScript 教程】第六章 数组05— splice():删除、插入和替换

【JavaScript 教程】第六章 数组04— JavaScript 队列

【JavaScript 教程】第六章 数组03— Stack :使用 Array 的push()和pop()方法实现堆栈数据结构

【JavaScript 教程】第六章 数组02— Array Length:如何有效地使用数组的长度属性

【JavaScript 教程】第六章 数组01— 介绍JavaScript中的Array类型


今天的文章 数组方法some和every(数组方法some和every的区别)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2026-03-13 12:51
下一篇 2026-03-13 13:06

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/53374.html