You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何实现类似字符串split的按指定值分割数组功能

按type属性分割数组实现方案

完全可以实现该分割逻辑,以下是可直接运行的实现方式:

JavaScript 实现代码

function splitByDivider(sourceArr) {
  const splitResult = [];
  let tempChunk = [];
  for (const item of sourceArr) {
    if (item.type === 'divider') {
      if (tempChunk.length) {
        splitResult.push(tempChunk);
        tempChunk = [];
      }
      continue;
    }
    tempChunk.push(item);
  }
  // 处理最后一段未推入结果的内容
  if (tempChunk.length) splitResult.push(tempChunk);
  return splitResult;
}

// 输入示例
const input = [
    { "type": "type-a", "name": "Foo" },
    { "type": "type-b", "name": "Foo" },
    { "type": "type-c", "name": "Foo" },
    { "type": "divider", "name": "Foo" },
    { "type": "type-b", "name": "Foo" },
    { "type": "type-b", "name": "Foo" },
    { "type": "divider", "name": "Foo" },
    { "type": "type-c", "name": "Foo" }
];

// 执行函数即可得到期望输出
const output = splitByDivider(input);

实现逻辑说明

  • 遍历过程中维护一个临时数组收集当前分段的元素
  • 遇到type值为divider的元素时,若当前临时数组非空就存入最终结果,随后清空临时数组开始下一段收集,分隔符本身不会被保留到任何子数组中
  • 遍历结束后将最后一段收集到的非空内容存入结果,避免遗漏末尾没有跟随分隔符的分段

边界场景适配

  • 数组开头存在分隔符时,不会生成开头的空数组
  • 数组末尾存在分隔符时,不会生成末尾的空数组
  • 连续出现多个分隔符时,不会在相邻分隔符之间生成空数组

内容的提问来源于stack exchange,提问作者dpedrovich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 15:54:31