如何将带有分隔符的连接数组拆分为块

2023-12-19

我有字符串数组

const arr = ['some', 'word', 'anotherverylongword', 'word', 'yyy', 'u']
const joined = arr.join(';')

我想要获取块数组,其中连接的字符串长度不大于 10

例如输出将是:

[
    ['some;word'], // joined string length not greater than 10
    ['anotherverylongword'], // string length greater than 10, so is separated
    ['word;yyy;u'] // joined string length is 10
]

您可以使用reduce https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce(和一些spread syntax https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax and slice https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)生成这样的块:

const arr = ['some', 'word', 'anotherverylongword', 'word', 'yyy', 'u'];
const chunkSize = 10;

const result = arr.slice(1).reduce(
  (acc, cur) =>
    acc[acc.length - 1].length + cur.length + 1 > chunkSize
      ? [...acc, cur]
      : [...acc.slice(0, -1), `${acc[acc.length - 1]};${cur}`],
  [arr[0]]
);

console.log(result);

这个想法是用块构建数组(result)从第一个元素开始arr(第二个参数为reduce函数),然后,对于剩余的每一个元素arr (arr.slice(1)),检查是否可以将其附加到累加器的最后一个元素(acc)。累加器最终成为最终的返回值reduce, 分配给result.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将带有分隔符的连接数组拆分为块 的相关文章

随机推荐

  • 如何在 DataReader 上实现 Peek() 函数?

    似乎没有一个Peekado net 中 DataReader 上的方法 我希望能够在循环阅读器之前执行一些一次性处理 并且如果能够查看第一行中的数据而不导致后续迭代跳过它 那就太好了 实现这一目标的最佳方法是什么 我正在使用一个SqlDat
  • 在网站之间安全地传输用户

    这是场景 您有两个存在于不同环境中的独立网站 即不同的数据库 不同的 Web 服务器 域 您可以完全控制两个站点的代码 但从上面的观点来看 它们不能直接与对方的数据库进行通信 您必须将用户从站点 A 安全地转移到站点 B 实现这一点的最佳方
  • 如何使文本在 HTML 页面中垂直和水平居中

    我对Java C 数据库 网络等有一些经验 但是与Html相关的任何东西我都是初学者 我唯一想要的就是在页面中间居中两个单词 这个页面只会有这两个词 WORD1 WORDWORDWORDWORD2 我尝试过一些所见即所得的软件 比如 Kom
  • Rails UJS“开启”处理ajax事件

    我在 Rails 应用程序中使用 jQuery 方法 on 来将事件附加到并不总是存在的表单上 当 myForm 附加到文档时 它似乎没有附加事件处理程序 这是UJS的建议用法on myForm on ajax complete funct
  • 在 Swift 中调用 CGPatternCreate

    我想知道如何将以下 Objective C 方法转换为 Swift 函数 CGPatternRef pattern CGPatternCreate NULL rect CGAffineTransformIdentity 24 24 kCGP
  • Java Swing UI 测试驱动程序替换 Fest [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有 Fest 的替代品 以便替代品可以以黑盒方式 不是 JUnit 驱动 Java Swing UI
  • 计算文件夹大小

    我正在尝试并行计算文件夹大小 也许这是一种天真的做法 我所做的是将每个分支节点 目录 的计算交给代理 所有叶节点的文件大小都添加到 my size 中 好吧 这不起作用 扫描 工作正常 连续 pscan 仅打印第一级的文件 def agen
  • 如何全局指定 .net 5.0 应用程序不支持 android 和 ios

    我在 net 5 0 项目中使用 System IO Ports 这会生成如下警告 警告 CA1416 此调用站点可在所有平台上访问 ios android 不支持 SerialPort Close 我可以在调用 SerialPort 方法
  • 如何使用标准应用程序打开文件?

    我的应用程序将 PDF 打印到临时文件 如何使用 Python 中的默认应用程序打开该文件 我需要一个解决方案 Windows Linux 如果没有更通用的话 Ubuntu 和 Xfce Related 使用 Python 中的默认应用程序
  • 防止 mat-option 选择 if 条件

    我想阻止选择 mat option 因为单击它会打开一个对话框 仅当从对话框中选择某些内容时 才应选择我的选项 如果对话框中未选择任何内容 则不应更改 mat option 之前的值
  • Bootstrap 中延迟显示崩溃?

    如何延迟 Bootstrap 4 中折叠元素的显示 例如 您是否延迟显示下面示例中的 链接 href 按钮的内容 p a class btn btn primary href collapseExample Link with href a
  • 架构 i386 clang 的重复符号

    我在 google 和 stackoverflow 上看到了与此错误相关的几篇文章 我已经阅读了所有这些文章 但仍然在获取问题 我会很高兴找到解决方案 这是我在编译时收到的错误消息 找不到选项 L Users somefolder Docu
  • Scrapy图像下载

    我的蜘蛛运行时没有显示任何错误 但图像未存储在文件夹中 这是我的 scrapy 文件 蜘蛛 py import scrapy import re import os import urlparse from scrapy spiders i
  • awk:对字符串使用反向匹配,然后替换字符

    我想提取不包含的行 并删除 在输出中 我的输入文件如下所示 string 1 string 2 string 3 Can use grep and tr获得想要的输出 grep v FILE tr d string3 不过我想用awk 我可
  • Mongodb:db.collection.copyTo() 和 eval() 已被弃用。有什么替代方案?

    我发现db collection copyTo http docs mongodb org manual reference method db collection copyTo and eval http docs mongodb or
  • 如何隐藏晶格R中的x轴

    如何在点阵xyplot中隐藏x轴 xlim 通常情况下 情节是 hist rnorm 10 0 2 axes F 而且全球解决方案也很棒 因为我的地块很少 我正在使用 gridExtra 包 grid arrange plot1 plot2
  • 具有 Windows 身份验证的 WebAPI CORS - 允许匿名选项请求

    我有一个使用 Windows 身份验证运行的 WebAPI 2 REST 服务 它与网站分开托管 因此我使用 ASP NET CORS NuGet 包启用了 CORS 我的客户端站点正在使用 AngularJS 到目前为止 这是我经历过的事
  • Netbeans 扫描符号链接目录

    我在 netbeans 中打开了许多项目 这些项目在其源代码根目录中具有指向库文件夹的符号链接 netbeans 是否扫描符号链接目录一次 还是为每个项目扫描一次 我问这个是因为这需要一个veryNetbeans 扫描我的项目很长时间 其中
  • Swift:从中心开始的 UIBezierPath 笔划动画

    我一直在做一个简单的UIBezierPath使用 Swift 制作动画 该路径包括创建一个带有彩色边框的圆角矩形 动画必须是彩色边框的绘制 为此 我创建了一个CAShapeLayer with a UIBezierPath roundedR
  • 如何将带有分隔符的连接数组拆分为块

    我有字符串数组 const arr some word anotherverylongword word yyy u const joined arr join 我想要获取块数组 其中连接的字符串长度不大于 10 例如输出将是 some w