Optimalisatie via ingebouwde functies in JavaScript
Stel dat een programmeur controleert of
het getal 3 in een array zit:
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);
Ik beweer dat er iets mis is met deze code.
Wat is er dan niet in orde, we breken toch uit de lus
nadat we het getal 3 hebben gevonden? Het punt is
dat ingebouwde JavaScript functies altijd
sneller werken dan vergelijkbare zelfgeschreven
code.
In ons geval bestaat de functie includes,
die de gestelde taak oplost - en deze functie
moet je gebruiken:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(arr.includes(3));
De moraal: controleer voordat je een taak oplost altijd of er geen ingebouwde JavaScript functie is voor de oplossing.
De volgende code controleert of
een string begint met 'http'.
Voer optimalisatie uit:
let str = 'http://code.mu';
if (str[0] + str[1] + str[2] + str[3] === 'http') {
console.log('+++');
} else {
console.log('---');
}
De volgende code vult een array met een opgegeven waarde. Voer optimalisatie uit:
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;
}