A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Iterator/every below:

Iterator.prototype.every() - JavaScript | MDN

Iterator.prototype.every()

Baseline 2025

Newly available

实验性: 这是一项实验性技术
在将其用于生产之前,请仔细检查浏览器兼容性表格。

Iterator 实例的 every() 方法与 Array.prototype.every() 类似:它测试迭代器的所有生成的元素是否都能通过由提供的函数实现的测试。它返回一个布尔值。

语法 参数 返回值

如果 callbackFn 为所有元素都返回真值,则为 true,否则为 false。

描述

every() 迭代该迭代器,并对每个元素调用一次 callbackFn 函数。如果 callbackFn 返回假值,则立即返回 false。否则,它会一直迭代到迭代器的结尾,并返回 true。如果 every() 返回 false,则会调用底层迭代器的 return() 方法。

迭代器辅助方法相对于数组方法的主要优势在于它们能够处理无限迭代器。对于无限迭代器,every() 会在第一次找到假值时立即返回 false。如果 callbackFn 始终返回真值,则该方法永远不会返回。

示例 使用 every()
function* fibonacci() {
  let current = 1;
  let next = 1;
  while (true) {
    yield current;
    [current, next] = [next, current + next];
  }
}

const isEven = (x) => x % 2 === 0;
console.log(fibonacci().every(isEven)); // false

const isPositive = (x) => x > 0;
console.log(fibonacci().take(10).every(isPositive)); // true
console.log(fibonacci().every(isPositive)); // 永远不会完成

调用 every() 总是关闭底层迭代器,即使方法提前返回。迭代器永远不会处于中间状态。

const seq = fibonacci();
console.log(seq.every(isEven)); // false
console.log(seq.next()); // { value: undefined, done: true }
规范 浏览器兼容性 参见

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4