Optimering med innebygde funksjoner i JavaScript
La oss si at en programmerer sjekker om
det finnes tallet 3 i en array:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let exists = false;
for (let elem of arr) {
if (elem === 3) {
exists = true;
break;
}
}
console.log(exists);
Jeg hevder at det er noe galt med denne koden.
Hva er i veien, vi avslutter jo løkken
etter at vi har funnet tallet 3? Saken er
at innebygde funksjoner i JavaScript alltid
jobber raskere enn tilsvarende selvskrevet
kode.
I vårt tilfelle finnes det en funksjon includes
som løser den gitte oppgaven, - og det er
denne funksjonen som bør brukes:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(arr.includes(3));
Moralen: før du løser en oppgave, sørg for å sjekke om det finnes en innebygd JavaScript-funksjon for å løse den.
Følgende kode sjekker om en streng
starter med 'http'.
Utfør optimering:
let str = 'http://code.mu';
if (str[0] + str[1] + str[2] + str[3] === 'http') {
console.log('+++');
} else {
console.log('---');
}
Følgende kode fyller en array med en angitt verdi. Utfør optimering:
let arr = fillArr('x', 5);
console.log(arr);
function fillArr(val, amount) {
let arr = [];
for (let i = 1; i <= amount; i++) {
arr.push(val);
}
return arr;
}