Optimointi sisäänrakennetuilla funktioilla JavaScriptissä
Oletetaan, että ohjelmoija tarkistaa, onko
taulukossa numero 3:
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);
Väitän, että tämän koodin kanssa on jotain vialla.
Mikä siinä on huonosti, eihän me poistuta silmukasta
vasta sen jälkeen, kun olemme löytäneet numeron 3? Asia on niin,
että JavaScriptin sisäänrakennetut funktiot toimivat aina
nopeammin kuin vastaava itse kirjoitettu koodi.
Meidän tapauksessamme on olemassa funktio includes,
joka ratkaisee asetetun tehtävän, - ja sitä pitäisi käyttää
juuri tätä funktiota:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(arr.includes(3));
Opettavainen neuvo: ennen tehtävän ratkaisemista tarkista varmasti, onko sen ratkaisemiseksi JavaScriptin sisäänrakennettua funktiota.
Seuraava koodi tarkistaa, alkaako
merkkijono 'http':lla.
Suorita optimointi:
let str = 'http://code.mu';
if (str[0] + str[1] + str[2] + str[3] === 'http') {
console.log('+++');
} else {
console.log('---');
}
Seuraava koodi täyttää taulukon annetulla arvolla. Suorita optimointi:
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;
}