当前位置:首页 > JavaScript

实现 slice JS

2026-03-13 17:09:33JavaScript

实现 slice JS

实现 slice JS

实现 JavaScript 的 slice 方法

JavaScript 的 slice 方法用于提取数组或字符串的一部分,返回一个新数组或字符串,而不修改原始数据。以下是实现 slice 功能的几种方法。

实现数组的 slice 方法

function sliceArray(array, start, end) {
  const result = [];
  const length = array.length;

  start = start === undefined ? 0 : start < 0 ? Math.max(length + start, 0) : Math.min(start, length);
  end = end === undefined ? length : end < 0 ? Math.max(length + end, 0) : Math.min(end, length);

  for (let i = start; i < end; i++) {
    result.push(array[i]);
  }
  return result;
}

实现字符串的 slice 方法

function sliceString(str, start, end) {
  const length = str.length;

  start = start === undefined ? 0 : start < 0 ? Math.max(length + start, 0) : Math.min(start, length);
  end = end === undefined ? length : end < 0 ? Math.max(length + end, 0) : Math.min(end, length);

  let result = '';
  for (let i = start; i < end; i++) {
    result += str[i];
  }
  return result;
}

使用 ES6 的 Array.from 实现

function sliceArrayES6(array, start, end) {
  const length = array.length;
  start = start === undefined ? 0 : start < 0 ? Math.max(length + start, 0) : Math.min(start, length);
  end = end === undefined ? length : end < 0 ? Math.max(length + end, 0) : Math.min(end, length);

  return Array.from({ length: end - start }, (_, i) => array[start + i]);
}

注意事项

  • 如果未提供 start,默认从索引 0 开始。
  • 如果未提供 end,默认提取到末尾。
  • 负数索引表示从末尾开始计算。
  • 如果 startend 超出范围,会自动调整到有效索引。

以上方法模拟了原生 slice 的行为,可以根据需求选择适合的实现方式。

标签: sliceJS
分享给朋友:

相关文章

JS如何调用react组件

JS如何调用react组件

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

JS实现日期滚动选择

JS实现日期滚动选择

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

JS能实现跨平台吗

JS能实现跨平台吗

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

实现 slice JS

实现 slice JS

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

JS奇数实现

JS奇数实现

判断数字是否为奇数 在JavaScript中,可以通过取模运算符(%)来判断一个数字是否为奇数。奇数除以2的余数为1。 function isOdd(num) { return num %…

实现阶乘JS

实现阶乘JS

递归实现阶乘 递归是一种直接按照数学定义实现阶乘的方法。n的阶乘可以表示为n乘以(n-1)的阶乘,基础情况是0的阶乘为1。 function factorialRecursive(n) { if…