Optimering med inbyggda funktioner i JavaScript
Låt oss säga att en programmerare kontrollerar om
det finns siffran 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);
Jag hävdar att det är något fel med den här koden.
Vad är det för fel, vi avslutar ju loopen
efter att vi har hittat siffran 3? Saken är den,
att de inbyggda funktionerna i JavaScript alltid
är snabbare än motsvarande egenkodad
programkod.
I vårt fall finns funktionen includes,
som löser den givna uppgiften, - och man bör
använda just denna funktion:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(arr.includes(3));
Slutsats: innan du löser en uppgift, se till att kontrollera om det finns en inbyggd JavaScript-funktion för dess lösning.
Följande kod kontrollerar om en sträng
börjar 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öljande kod fyller en array med ett givet värde. 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;
}