Optimering deur ingeboude funksies in JavaScript
Laat 'n sekere programmeerder nagaan of
daar die nommer 3 in die skikking is:
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);
Ek beweer dat daar iets fout is met hierdie kode.
Wat is verkeerd, ons breek tog uit die lus
nadat ons die nommer 3 gevind het? Die saak is,
dat ingeboude JavaScript-funksies altyd
vinniger werk as soortgelyke selfgeskrewe
kode.
In ons geval bestaan daar die funksie includes
wat die gestelde probleem oplos - en ons moet
presies hierdie funksie gebruik:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(arr.includes(3));
Die moraal: voor jy 'n probleem oplos, moet jy altyd nagaan of daar nie 'n ingeboude JavaScript-funksie is om dit op te los nie.
Die volgende kode kyk of 'n string
met 'http' begin.
Voer optimering uit:
let str = 'http://code.mu';
if (str[0] + str[1] + str[2] + str[3] === 'http') {
console.log('+++');
} else {
console.log('---');
}
Die volgende kode vul 'n skikking met 'n gegewe waarde. Voer optimering 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;
}