Перечисления TypeScript — это мощная функция, позволяющая разработчикам определять набор именованных констант. Они предоставляют удобный способ представления фиксированного набора значений в вашем коде. Однако могут возникнуть ситуации, когда вам потребуется преобразовать перечисление в массив либо для манипулирования данными, либо для перебора его значений. В этой записи блога мы рассмотрим несколько методов преобразования перечислений TypeScript в массивы, а также приведем примеры кода и пояснения.
Метод 1: использование Object.values()
Один из самых простых способов преобразования перечисления в массив — использование метода Object.values(). Этот метод возвращает массив значений перечисления. Вот пример:
enum Color {
Red = 'red',
Green = 'green',
Blue = 'blue',
}
const colorArray = Object.values(Color);
console.log(colorArray); // Output: ['red', 'green', 'blue']
Метод 2: использование цикла for…in
Другой подход — использовать цикл for...inдля перебора ключей перечисления и помещения соответствующих значений в массив. Вот пример:
enum Fruit {
Apple = 'apple',
Banana = 'banana',
Orange = 'orange',
}
const fruitArray = [];
for (const key in Fruit) {
if (isNaN(Number(key))) {
fruitArray.push(Fruit[key]);
}
}
console.log(fruitArray); // Output: ['apple', 'banana', 'orange']
Метод 3: использование Object.entries() и map()
Вы также можете преобразовать перечисление в массив, используя комбинацию Object.entries()и map()метод. Этот подход предоставляет массив пар ключ-значение, который можно преобразовать в массив значений с помощью map(). Вот пример:
enum Animal {
Dog = 'dog',
Cat = 'cat',
Bird = 'bird',
}
const animalArray = Object.entries(Animal).map(([key, value]) => value);
console.log(animalArray); // Output: ['dog', 'cat', 'bird']
Преобразование перечислений TypeScript в массивы может быть полезно в различных сценариях, таких как манипулирование данными или перебор значений перечисления. В этой статье мы рассмотрели три различных метода выполнения этой задачи: использование Object.values(), цикла for...inи Object.entries()в сочетании с map(). Применяя эти методы, вы можете легко преобразовать перечисления в массивы и более гибко работать с ними в своем коде JavaScript.
Не забудьте выбрать метод, который лучше всего соответствует вашим конкретным требованиям и стилю кодирования. Приятного кодирования!