当前位置:首页 > JavaScript

实现 slice JS

2026-01-31 19:15:16JavaScript

实现 JavaScript 的 slice 方法

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

实现 slice JS

数组的 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 方法的核心功能实现,可根据实际需求进一步扩展或优化。

标签: sliceJS
分享给朋友:

相关文章

JS实现跳表

JS实现跳表

跳表的基本概念 跳表(Skip List)是一种基于概率的数据结构,允许快速查询、插入和删除操作,时间复杂度平均为O(log n)。它通过多层链表实现,每一层都是下一层的子集,高层链表跳过多个元素,从…

JS实现哀悼

JS实现哀悼

实现网页哀悼效果的方法 通过CSS滤镜和全局样式调整,可以快速实现网页整体变灰的哀悼效果。以下是具体实现方式: document.addEventListener('DOMContentLo…

JS如何访问react内部的数据

JS如何访问react内部的数据

访问 React 组件内部数据的方法 在 React 中,组件内部的数据通常通过 state 或 props 管理。以下是几种常见的访问方式: 通过 state 访问数据 React 组件的内部状态…

slice js实现

slice js实现

slice.js 实现方法 在JavaScript中,slice()方法用于数组或字符串的截取操作。以下是针对不同场景的实现方式: 数组的slice实现 数组的slice()方法返回一个新数组,包含…

JS实现日期滚动选择

JS实现日期滚动选择

实现日期滚动选择的基本思路 使用HTML、CSS和JavaScript创建一个日期滚动选择器,允许用户通过滚动选择年、月、日。核心是通过监听滚动事件,动态更新显示的值。 HTML结构 创建一个包含年…

js slice实现

js slice实现

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