Skip to content

slice(Lodash 兼容性)

使用 Array.prototype.slice

slice 函数由于 nullundefined 处理和稀疏数组的特殊处理而运行缓慢。JavaScript 的原生 Array.prototype.slice 方法更快且更标准化。

请使用更快、更现代的 Array.prototype.slice

切割数组的一部分以创建新数组。

typescript
const sliced = slice(array, start, end);

参考

slice(array, start, end)

当只需要数组的特定部分时,使用 slice。它创建一个新数组,包含从开始位置到结束位置之前的元素。

typescript
import { slice } from 'es-toolkit/compat';

// 从索引1到2进行切割
slice([1, 2, 3, 4], 1, 3);
// 返回值:[2, 3]

// 使用负索引
slice([1, 2, 3, 4], -2);
// 返回值:[3, 4]

// 仅指定开始位置
slice([1, 2, 3, 4], 2);
// 返回值:[3, 4]

nullundefined 作为空数组处理。

typescript
import { slice } from 'es-toolkit/compat';

slice(null); // []
slice(undefined); // []

处理稀疏数组时,空槽会用 undefined 填充。

typescript
import { slice } from 'es-toolkit/compat';

const sparse = new Array(3);
sparse[1] = 'b';
slice(sparse);
// 返回值:[undefined, 'b', undefined]

使用负索引会从数组末尾开始计算。

typescript
import { slice } from 'es-toolkit/compat';

slice([1, 2, 3, 4, 5], -3, -1);
// 返回值:[3, 4]

参数

  • array (ArrayLike<T> | null | undefined):要切割的数组。
  • start (number,可选):开始位置。负值从末尾计算。默认值为 0
  • end (number,可选):结束位置(不包含)。负值从末尾计算。默认值为数组的长度。

返回值

(T[]):返回包含从 startend 之前的元素的新数组。

采用 MIT 许可证发布。