当前位置:首页 > JavaScript

实现 slice JS

2026-01-31 19:15:16JavaScript

实现 JavaScript 的 slice 方法

JavaScript 的 slice 方法用于从数组或字符串中提取一部分,返回一个新的数组或字符串,而不修改原始数据。以下是实现 slice 的核心逻辑和注意事项。

数组的 slice 实现

function slice(array, start, end) {
  const length = array == null ? 0 : array.length;
  if (!length) {
    return [];
  }

  start = start == null ? 0 : start;
  end = end === undefined ? length : end;

  if (start < 0) {
    start = -start > length ? 0 : length + start;
  }
  if (end < 0) {
    end = -end > length ? 0 : length + end;
  }

  const result = [];
  for (let i = start; i < end && i < length; i++) {
    result.push(array[i]);
  }
  return result;
}
  • 参数处理startend 可以是负数,表示从末尾开始计算的位置。
  • 边界检查:确保 startend 在合理范围内,避免越界访问。
  • 结果生成:通过循环将指定范围的元素添加到新数组中。

字符串的 slice 实现

function sliceString(str, start, end) {
  const length = str == null ? 0 : str.length;
  if (!length) {
    return '';
  }

  start = start == null ? 0 : start;
  end = end === undefined ? length : end;

  if (start < 0) {
    start = -start > length ? 0 : length + start;
  }
  if (end < 0) {
    end = -end > length ? 0 : length + end;
  }

  let result = '';
  for (let i = start; i < end && i < length; i++) {
    result += str[i];
  }
  return result;
}
  • 逻辑类似数组:处理负数索引和边界条件的方式与数组一致。
  • 字符串拼接:通过循环拼接字符生成子字符串。

注意事项

  • 性能优化:现代 JavaScript 引擎已对原生 slice 做了高度优化,手动实现的版本可能性能较差。
  • 类型检查:原生 slice 会检查调用者是否为数组或字符串,手动实现时可根据需要添加类型校验。
  • 稀疏数组:原生 slice 会跳过稀疏数组的空位,手动实现时需额外处理。

以上代码提供了 slice 方法的核心功能实现,可根据实际需求进一步扩展或优化。

实现 slice JS

标签: sliceJS
分享给朋友:

相关文章

JS如何调用react组件

JS如何调用react组件

调用React组件的常见方法 在JavaScript中调用React组件通常涉及以下几种场景和方式: 直接渲染组件 通过ReactDOM.render()方法将组件渲染到DOM节点: import…

JS如何实现左右滑动

JS如何实现左右滑动

实现左右滑动的方法 使用 touchstart、touchmove 和 touchend 事件监听触摸操作,计算滑动距离和方向。 let startX, moveX; element.addEve…

JS实现文本的删除

JS实现文本的删除

使用 substring() 方法 通过指定起始和结束索引截取字符串的一部分,间接实现删除效果。 let str = "Hello World"; let newStr = str.substr…

JS能实现跨平台吗

JS能实现跨平台吗

JavaScript 的跨平台能力 JavaScript 是一种高度灵活的脚本语言,通过不同运行时环境和工具链可以实现跨平台开发。以下是其跨平台能力的核心实现方式: 浏览器环境 JavaScri…

js slice实现

js slice实现

slice 方法的基本用法 slice 是 JavaScript 数组和字符串的一个常用方法,用于提取部分内容并返回一个新数组或字符串,不改变原数组或字符串。 语法: array.slice(st…