Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
some() 方法测试数组中是否至少有一个元素通过了由提供的函数实现的测试。如果在数组中找到一个元素使得提供的函数返回 true,则返回 true;否则返回 false。它不会修改数组。
为数组中的每个元素执行的函数。它应该返回一个真值以指示元素通过测试,否则返回一个假值。该函数被调用时将传入以下参数:
element数组中当前正在处理的元素。
index正在处理的元素在数组中的索引。
array调用了 some() 的数组本身。
thisArg 可选执行 callbackFn 时用作 this 的值。参见迭代方法。
如果回调函数对数组中至少一个元素返回一个真值,则返回 true。否则返回 false。
some() 方法是一个迭代方法。它为数组中的每个元素调用一次指定的 callbackFn 函数,直到 callbackFn 返回一个真值。如果找到这样的元素,some() 方法将会立即返回 true 并停止遍历数组。否则,如果 callbackFn 对所有元素都返回假值,some() 就会返回 false。
some() 类似于数学中的“存在量词(∃)”。特别地,在对于一个空数组,任何条件下它都返回 false。
callbackFn 仅针对已分配值的数组索引调用。它不会为稀疏数组中的空槽调用。
some() 不会改变调用它的数组,但指定的 callbackFn 函数可以。但是请注意,数组的长度是在第一次调用 callbackFn 之前保存的。因此:
警告:上述类型的并发修改经常导致难以理解的代码,通常应避免(特殊情况除外)。
some() 方法是通用的。它只期望 this 值具有 length 属性和整数键属性。
下面的例子检测在数组中是否有元素大于 10。
箭头函数可以通过更简洁的语法实现相同的用例。
此例为模仿 includes() 方法,若元素在数组中存在,则回调函数返回值为 true :
some() 不会在空槽上运行它的断言函数。
some() 方法读取 this 的 length 属性,然后访问每个整数索引,直到到达末尾或 callbackFn 返回 true。
| ECMAScript® 2027 Language Specification # sec-array.prototype.some |
启用 JavaScript 以查看此浏览器兼容性表。