Optimointi sisäänrakennetuilla funktioilla JavaScriptissä
Oletetaan, että ohjelmoija tarkistaa, onko
taulukossa numero 3:
javascriptlet 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:
javascriptlet 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:
javascriptlet str = '';
if (str[0] + str[1] + str[2] + str[3] === 'http') {
console.log('+++');
} else {
console.log('---');
}
Seuraava koodi täyttää taulukon annetulla arvolla. Suorita optimointi:
javascriptlet 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;
}