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.

Задание 1

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('---');
}
Задание 2

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;
}