Datos y texto · Media · 15 min

Quita duplicados y agrupa modelos por familia

Un inventario de modelos con entradas repetidas: quédate con la más reciente de cada uno y cuenta cuántos hay por familia.

RECORDS es un inventario de descargas con la forma { name, family, date, digest }. Un mismo name aparece varias veces.

1. Escribe dedupeLatest(records): devuelve un array nuevo con un registro por name, el de date más reciente, ordenado por name de forma ascendente. No modifiques el array de entrada. 2. Escribe countByFamily(records): devuelve un objeto { familia: número }.

Las fechas vienen en formato YYYY-MM-DD, así que se pueden comparar como texto.

Retos 0/5

  • Deja un registro por modelo, ordenados por nombre
  • Se queda con la entrada más reciente
  • No modifica el array de entrada
  • Cuenta por familia después de quitar duplicados
  • Un inventario vacío da [] y {}

function dedupeLatest(records) {
  // un registro por nombre: el de fecha más reciente
  // después ordena por nombre
  return records.slice();
}

function countByFamily(records) {
  // { family: recuento }
  return {};
}

console.log(countByFamily(dedupeLatest(RECORDS)));
La consola aparece aquí (console.log).

Para profundizar: la referencia de MDN (en inglés) →

¿Esto en producción, con tus datos? Hablemos 15 minutos →