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/year/2027/proposal-iterator-join.md.
  • 简体中文
  • Iterator Join S4

    中文标题:迭代器 join

    提案概览
    提案速览

    该提案为 JavaScript 添加 Iterator.prototype.join,提供一种将迭代器内容连接为单个字符串的方式。该方法的行为与 Array.prototype.join 类似,但将其接收者作为迭代器而不是作为 Array 来操作。它解决了从可迭代来源连接字符串这一常见操作,无需将可迭代对象转换为 Array 或手动进行 reduce。

    Note

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

    迭代器 join

    一项提案,为 JavaScript 增加一种将迭代器内容连接为字符串的方法。

    状态

    作者:Kevin Gibbons

    负责人:Kevin Gibbons

    该提案目前处于 TC39 流程 的第 4 阶段:它已完成并包含在标准中。任何进一步的更改都需要通过常规流程在单独的提案中进行。本仓库已归档。

    动机

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

    我们应该让这件事更容易。

    这个问题在最初的迭代器辅助方法提案期间被提出,后来又出现在 Discourse 上。

    提案

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