For AI agents: the complete documentation index is available at /tc39-atlas/llms.txt, the full documentation bundle is available at /tc39-atlas/llms-full.txt, and this page is available as Markdown at /tc39-atlas/proposals/stage/3/proposal-iterator-join.md.
  • 简体中文
  • Iterator Join S3

    中文标题:迭代器连接

    提案概览
    提案速览

    该提案旨在简化将任意可迭代对象的内容连接成字符串的操作。它引入了 Iterator.prototype.join,它与 Array.prototype.join 类似,但作用于迭代器,避免了中间分配或数组转换。

    Note

    以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。

    迭代器连接

    一个向 JavaScript 添加将迭代器的内容连接成字符串的方法的提案。

    状态

    作者:Kevin Gibbons

    推动者:Kevin Gibbons

    此提案处于 TC39 流程 的第 3 阶段:它已有 规范test262 测试,并已准备好进行实现。

    动机

    将字符串列表连接成单个字符串以便显示或其他用途是一个非常 常见 操作。如果你有一个数组,那就很简单:只需调用 .join(sep)。如果你有任意其他可迭代对象,你可以执行 Iterator.from(it).reduce((a, b) => a + sep + b)(但要付出分配所有中间字符串的代价,而且这在空迭代器上会出错),或者 Array.from(it).join(sep)(但要付出将整个内容转换为数组的代价)。

    我们应该让这变得更简单。

    这是在 最初的迭代器辅助方法提案 中提出的,后来又在 Discourse 上讨论过。

    提案

    虽然原则上解决这个问题有多种方法,但最明显的是添加 Iterator.prototype.join,它的工作方式与 Array.prototype.join 完全相同,只不过它将其接收者作为迭代器而非数组来操作。这就是 当前规范的 内容。