Optimización de operaciones repetitivas en JavaScript
A menudo, los programadores principiantes realizan sin pensar la llamada a la misma función varias veces, consumiendo recursos.
Veamos un ejemplo. Supongamos que tenemos una cadena que contiene alguna ruta:
let path = 'img.png';
Supongamos que tenemos la tarea de verificar
si la ruta termina con la extensión
.png o .jpg. Algún
programador principiante escribió
la siguiente solución:
let path = 'img.png';
if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
¿Qué está mal con esta solución? El problema es que
el método slice se llama dos veces,
haciendo lo mismo. Esto, por supuesto,
no es óptimo.
Para optimizar, necesita realizar el corte de la cadena una vez, guardar el resultado en una variable y luego usar esta variable más adelante:
let path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Optimice el siguiente código:
let num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Optimice el siguiente código:
let date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('fin de semana');
} else {
console.log('día laboral');
}
Optimice el siguiente código:
let date = new Date();
let res;
if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) {
res = 'el año ' + date.getFullYear() + ' es adecuado';
} else {
res = 'el año ' + date.getFullYear() + ' no es adecuado';
}
console.log(res)