TypeScript 中如何清空数组

使用 splice() 方法清空 TypeScript 中的数组,例如 arr.splice(0)。 该方法将通过删除并返回从索引零开始的所有元素来清空原始数组。 数组的类型在清空后保留。

const arr = [1, 2, 3];

arr.splice(0);

// ?️ const arr: number[]
console.log(arr); // ?️ []

我们传递给 Array.splice 方法的参数是起始索引 – 我们开始更改数组的索引。

splice 方法采用的第二个参数是 delete count – 应该从数组中删除的元素数,从起始索引开始。

如果未提供删除计数参数,则从起始索引开始的所有元素都将被删除。

出于我们的目的,我们提供 0 的起始索引来删除所有元素并清空数组。

请注意 ,即使删除了数组的元素,数组的原始类型也会保留。

我们在声明数组时没有显式键入数组,因为 TypeScript 能够根据值推断类型。

如果我们声明一个空数组,请确保显式键入它,因为如果不这样做,TypeScript 会将其类型设置为 any[],这实际上会关闭所有类型检查。

// ?️ const arr: any[]
const arr = [];

一个更高效和更好的解决方案是重新分配保存数组的变量。

要在 TypeScript 中清空数组,可以重新分配存储数组的变量并将其设置为空数组,例如 arr = []。 请注意,我们只能重新分配使用 let 和 var 关键字声明的变量。 这是在 TypeScript 中清空数组的最高效方式。

let arr = [1, 2, 3];

arr = [];

// ?️ let arr: number[]
console.log(arr); // ?️ []

请注意 ,我们使用 let 关键字来声明 arr 变量。 如果我们使用 const 关键字,我们将无法重新分配变量并将其设置为空数组。

另一种方法是将数组的长度设置为 0

要在 TypeScript 中清空数组,请将其长度属性设置为 0。当数组的长度属性更改时,索引不小于数组新长度的每个元素都会被自动删除。

const arr = [1, 2, 3];

arr.length = 0;

// ?️ const arr: number[]
console.log(arr); // ?️ []

通过将数组的长度设置为0,我们自动从数组中删除所有索引不小于0的元素,它覆盖了整个数组。

所有 3 种方法都在清空数组后保留数组的类型。