LinkedArray
LinkedArray es una extensión de la clase Array en TypeScript que proporciona funcionalidades avanzadas como mover, intercambiar, obtener elementos por índices negativos (similar a Python), y mucho más. Funciona como un array estándar de JavaScript, por lo que puedes usar todas sus funciones nativas junto con las nuevas capacidades.
Características principales
- Funcionalidades adicionales como
move, swap, first, last, entre otras.
- Soporte para índices negativos, como en Python.
- Métodos para ordenamiento flexible, incluyendo soporte para objetos y atributos anidados.
- Totalmente compatible con TypeScript.
Instalación
Puedes instalar esta librería usando npm:
npm install @aldoivan/linked-array
pnpm add @aldoivan/linked-array
Uso
import { LinkedArray } from "@aldoivan10/linked-array"
const array = new LinkedArray(1, 2, 3, 4, 5)
console.log(array[0])
console.log(array.first())
console.log(array.last())
console.log(array[-2], array.index())
console.log(array.at(-1), array.index())
array.move(0, 2)
console.log(array)
array.swap(0, 1)
console.log(array)
console.log(array.next())
console.log(array.previous())
console.log(array.current())
const objArr = new LinkedArray({ name: "Aldo" })
const clone = objArr.clone()
clone[0].name = "Ivan"
console.log(objArr, clone)
objArr.push({ name: "Lau" })
console.log(objArr)
Ordenamiento Avanzado
Numeros, cadenas, etc.
import { LinkedArray } from "@aldoivan10/linked-array"
const numArray = new LinkedArray(5, 3, 8, 1, 9)
const sortedNumArrayAsc = numArray.sorted()
console.log(sortedNumArrayAsc)
const sortedNumArrayDesc = numArray.sorted({ order: "desc" })
console.log(sortedNumArrayDesc)
Objetos
interface Person {
name: string
age: number
address: {
city: string
zip: number
}
}
const people = new LinkedArray<Person>(
{ name: "Alice", age: 30, address: { city: "New York", zip: 10001 } },
{ name: "Bob", age: 25, address: { city: "Los Angeles", zip: 90001 } },
{ name: "Charlie", age: 35, address: { city: "Chicago", zip: 60601 } }
)
const sortedPeopleByAgeAsc = people.sorted({ attr: "age" })
console.log(sortedPeopleByAgeAsc)
const sortedPeopleByCityAsc = people.sorted({
order: "desc",
attr: "address.city",
})
console.log(sortedPeopleByCityAsc)
Métodos
clean(): Limpia el array.
replace(array: Array<T>, index?: number): Reemplaza el contenido del array e inicializa el índice interno.
first(): Retorna el primer elemento del array.
last(): Retorna el último elemento del array.
current(): Retorna el elemento actual según el índice interno.
move(fromIndex: number, toIndex: number): Mueve un elemento a una nueva posición.
swap(index1: number, index2: number): Intercambia dos elementos.
next(): Retorna el siguiente elemento (con índice circular).
previous(): Retorna el elemento anterior (con índice circular).
index(): Retorna el índice interno actual.
at(index: number): Retorna el elemento en una posición específica.
clone(): Clona el array (incluidos los objetos internos).
removeAt(index: number): Elimina un elemento en una posición dada.
sorted({ order?: 'asc' | 'desc' = 'asc', attr?: string }?): Ordena el array según los parámetros.
Licencia
Este proyecto está licenciado bajo la Licencia MIT.