当前位置:首页 > 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 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…