在 TypeScript 中将集合转换为数组

在 TypeScript 中将集合转换为数组

Convert a Set to an Array in TypeScript

使用该Array.from()方法将 a 转换Set为数组,例如
const arr = Array.from(set). Array.from方法从可迭代对象(例如 a)创建一个新数组Set并返回结果。

索引.ts
const set1: Set<string> = new Set(['one', 'two', 'three']); // 👇️ const arr: string[] const arr = Array.from(set1); // 👇️ ['one', 'two', 'three'] console.log(arr);

我们传递给
Array.from
方法的唯一参数是一个可迭代对象(
Set示例中的 a)。

该方法将可迭代对象转换为数组并返回一个新的数组实例。

这是使用 TypeScript 时推荐的方法,因为编译器在将扩展运算符 (…) 与迭代器一起使用时经常会报错。

另一种方法是使用
扩展运算符 (…)

索引.ts
const set1: Set<string> = new Set(['one', 'two', 'three']); // 👇️ const arr: string[] const arr = [...set1]; // 👇️ ['one', 'two', 'three'] console.log(arr);

展开运算符允许我们将 的值解包Set到数组中。

您还可以使用这种方法将多个Set对象转换为一个数组。

索引.ts
const set1: Set<string> = new Set(['one', 'two', 'three']); const set2: Set<string> = new Set(['four', 'five', 'six']); // 👇️ const arr: string[] const arr = [...set1, ...set2]; // 👇️ ['one', 'two', 'three', 'four', 'five', 'six'] console.log(arr);

Set对象解包到数组中的顺序将被保留。

另一种更手动的方法是使用该forEach()方法迭代Set并在每次迭代时将元素推入数组。

索引.ts
const set1: Set<string> = new Set(['one', 'two', 'three']); const arr: string[] = []; set1.forEach((element) => { arr.push(element); }); // 👇️ ['one', 'two', 'three'] console.log(arr);

我们传递给
Set.forEach
方法的函数将使用
Set.

在每次迭代中,我们只是将值推入数组。

这绝对是 3 种方法中最冗长和手动的。我更喜欢其他两种将 aSet转换为数组的方法中的任何一种。

发表评论