Protocolo 20: El algoritmo del balance
Medio
sorting
objects
arrays
📖Historia
⚖️ Transmisión de Zeew_20 iniciada…
Los fragmentos de código están desordenados, causando inestabilidad en la red. Cada fragmento tiene un nivel energético que determina su posición óptima. El Algoritmo del Balance debe reordenarlos.
"El orden natural emerge del caos organizado."
Debes crear una función que ordene fragmentos según diferentes criterios, restaurando el balance del sistema.
🎯Enunciado
🎯 Objetivo
Crea una función balanceFragments(fragments, criterion) que ordene un array de objetos según el criterio especificado.
Cada fragmento tiene: { id, name, energy, priority }
Criterios:
"energy-asc": ordena porenergyascendente"energy-desc": ordena porenergydescendente"priority-asc": ordena porpriorityascendente"priority-desc": ordena porprioritydescendente"name": ordena pornamealfabéticamente
📋 Especificaciones
- Retorna un nuevo array ordenado (no modifica el original)
- Si el criterio no existe, retorna
"Error: criterio inválido" - Si
fragmentsno es array, retorna"Error: datos inválidos"
💡 Ejemplos
const frags = [
{ id: 1, name: "Beta", energy: 50, priority: 2 },
{ id: 2, name: "Alpha", energy: 80, priority: 1 },
{ id: 3, name: "Gamma", energy: 30, priority: 3 }
];
balanceFragments(frags, "energy-asc");
// [{ id: 3... }, { id: 1... }, { id: 2... }] (30, 50, 80)
balanceFragments(frags, "name");
// [{ id: 2, name: "Alpha"... }, { id: 1, name: "Beta"... }, { id: 3, name: "Gamma"... }]
✅Casos de prueba
Tu solución será validada contra 4 casos de prueba
Test 1: Ordena por energía ascendente
Test 2: Ordena por nombre
Test 3: Ordena por prioridad ascendente
... y 1 casos más
💻 Editor de código
JavaScript
Cargando editor...
Loading...