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 por energy ascendente
  • "energy-desc": ordena por energy descendente
  • "priority-asc": ordena por priority ascendente
  • "priority-desc": ordena por priority descendente
  • "name": ordena por name alfabéticamente

📋 Especificaciones

  • Retorna un nuevo array ordenado (no modifica el original)
  • Si el criterio no existe, retorna "Error: criterio inválido"
  • Si fragments no 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...