当前位置:首页 > JavaScript

js实现split

2026-04-06 17:27:32JavaScript

实现 split 方法的基本思路

JavaScript 的 split 方法用于将字符串分割成数组,基于指定的分隔符。以下是实现自定义 split 方法的核心逻辑:

function customSplit(str, separator, limit) {
  const result = [];
  let current = '';
  for (let i = 0; i < str.length; i++) {
    if (separator === '' && current !== '') {
      result.push(current);
      current = '';
    }
    if (str.slice(i, i + separator.length) === separator) {
      result.push(current);
      current = '';
      i += separator.length - 1;
    } else {
      current += str[i];
    }
  }
  if (current !== '') result.push(current);
  return limit ? result.slice(0, limit) : result;
}

处理空分隔符的特殊情况

当分隔符为空字符串时,每个字符都应作为独立的数组元素:

js实现split

if (separator === '') {
  return Array.from(str).slice(0, limit);
}

实现 limit 参数功能

limit 参数控制返回数组的最大长度。在循环中添加检查:

js实现split

if (limit && result.length >= limit) {
  break;
}

完整实现代码

结合上述逻辑的完整实现如下:

function customSplit(str, separator, limit) {
  if (separator === undefined) return [str];
  if (separator === '') return limit ? Array.from(str).slice(0, limit) : Array.from(str);

  const result = [];
  let current = '';

  for (let i = 0; i < str.length; i++) {
    const match = str.slice(i, i + separator.length);
    if (match === separator) {
      result.push(current);
      current = '';
      i += separator.length - 1;
      if (limit && result.length >= limit) break;
    } else {
      current += str[i];
    }
  }

  if (current !== '') result.push(current);
  return limit ? result.slice(0, limit) : result;
}

边界条件测试案例

验证实现的正确性需测试以下场景:

  • 空字符串输入
  • 未提供分隔符
  • 分隔符为多字符
  • 限制结果数组长度
console.log(customSplit('a,b,c', ','));       // ['a', 'b', 'c']
console.log(customSplit('a,b,c', ',', 2));   // ['a', 'b']
console.log(customSplit('abc', ''));         // ['a', 'b', 'c']
console.log(customSplit('a,,b', ','));       // ['a', '', 'b']

标签: jssplit
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数: fun…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…