word-count.js en JavaScript
Un script completo de frecuencia de palabras: leer un archivo, normalizar, contar, reportar.
import { readFile } from "node:fs/promises";
import process from "node:process";
async function wordCount(path) {
const text = await readFile(path, "utf8");
const counts = new Map();
for (const raw of text.split(/\s+/)) {
const word = raw.replace(/[.,!?;:]/g, "").toLowerCase();
if (word) counts.set(word, (counts.get(word) || 0) + 1);
}
return [...counts.entries()].sort((a, b) => b[1] - a[1]);
}
const path = process.argv[2];
if (!path) {
console.error("usage: node word-count.js FILE");
process.exit(1);
}
for (const [word, count] of (await wordCount(path)).slice(0, 10)) {
console.log(String(count).padStart(6), word);
}
Palabras clave y builtins usados aquí
MapStringasyncawaitconstforfromfunctionifimportofreturn
El intento, en números
- Líneas
- 21
- Caracteres a escribir
- 626
- Tokens
- 196
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 112 segundos.
Paso 1 de 1 en Bis; paso 43 de 43 en Fundamentos del lenguaje.