TypeScript で Set を Array に変換する
TypeScript では、Set を Array に変換する方法はいくつかあります。ここでは、最も一般的な 2 つの方法を紹介します。
方法 1: Spread Operator を使う
const mySet = new Set(['a', 'b', 'c']);
const myArray = [...mySet];
- mySet は、Set の要素を展開して新しい Array を作成します。
方法 2: Array.from() メソッドを使う
const mySet = new Set(['a', 'b', 'c']);
const myArray = Array.from(mySet);
Array.from()
メソッドは、iterable なオブジェクトから新しい Array を作成します。Set は iterable なため、このメソッドを使うことができます。
どちらの方法が適切か?
一般的には、Spread Operator の方が簡潔で読みやすいことが多いです。しかし、より複雑な変換が必要な場合は、Array.from() メソッドの方が柔軟性があります。
例
// Set を作成
const numberSet = new Set([1, 2, 3, 2, 1]);
// Spread Operator で Array に変換
const numberArray1 = [...numberSet];
console.log(numberArray1); // 出力: [1, 2, 3]
// Array.from() メソッドで Array に変換
const numberArray2 = Array.from(numberSet);
console.log(numberArray2); // 出力: [1, 2, 3]
// TypeScript で Set を Array に変換する
// Set を作成
const mySet = new Set(['apple', 'banana', 'orange']);
// 方法 1: Spread Operator を使う
const myArray1 = [...mySet];
console.log(myArray1); // 出力: ["apple", "banana", "orange"]
// 方法 2: Array.from() メソッドを使う
const myArray2 = Array.from(mySet);
console.log(myArray2); // 出力: ["apple", "banana", "orange"]
コードの説明
-
Set の作成
new Set(['apple', 'banana', 'orange'])
で新しい Set を作成します。- Set は重複する要素を許容しないため、同じ要素を複数回追加しても、Set 内には一意の要素のみが残ります。
-
- 展開演算子を使うことで、Set の各要素が新しい Array の要素としてコピーされます。
-
Array.from(mySet)
は、Set を iterable なオブジェクトとして扱い、新しい Array を作成します。Array.from()
メソッドは、任意の iterable なオブジェクトから新しい Array を生成できます。
方法 3: for-of ループを使う
const mySet = new Set(['a', 'b', 'c']);
const myArray = [];
for (const item of mySet) {
myArray.push(item);
}
この方法は、Set の各要素をループで取り出し、Array に追加します。しかし、コードが冗長になり、他の方法よりも効率的ではありません。
方法 4: Array.prototype.slice.call() を使う
const mySet = new Set(['a', 'b', 'c']);
const myArray = Array.prototype.slice.call(mySet);
この方法は、Array.prototype.slice() メソッドを Set に適用して、新しい Array を作成します。しかし、この方法はあまり一般的ではなく、他の方法よりも複雑です。
arrays typescript set