Avatar ·

¿Cómo eliminar duplicados de un array en Swift? (Manteniendo el orden)

Solución con preservación de orden mediante extensión de Array

La mejor manera de eliminar duplicados de un array preservando el orden de la primera aparición en Swift es usar un conjunto auxiliar junto con la función filter. Aquí tienes una implementación limpia y eficiente:

```swift extension Array where Element: Hashable { func unique() -> [Element] { var seen = Set() return filter { seen.insert($0).inserted } } } ```

O, si prefieres no crear una extensión, puedes usar una función:

```swift func unique(_ array: [T]) -> [T] { var seen = Set() return array.filter { seen.insert($0).inserted } } ```

Ambos métodos mantienen el orden original y eliminan duplicados en tiempo lineal O(n). Para tu ejemplo:

```swift let names = ["Анна", "Борис", "Анна", "Виктор", "Борис", "Дмитрий"] let uniqueNames = names.unique() // ["Анна", "Борис", "Виктор", "Дмитрий"] ```

Si necesitas una solución completamente libre de Foundation, esta funciona solo con la librería estándar de Swift.