Optimeerimiseks JavaScripti sisseehitatud funktsioonide abil

Oletame, et programmeerija kontrollib, kas massiivis on number 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);

Ma väidan, et selle koodiga on midagi valesti. Mis siis viga, me ju lähme tsüklist välja pärast seda, kui leidsime numbri 3? Asi on selles, et JavaScripti sisseehitatud funktsioonid töötavad alati kiiremini kui sarnane isekirjutatud kood.

Meie puhul on olemas funktsioon includes, mis lahendab püstitatud ülesande - ja kasutada tuleks just seda funktsiooni:

javascriptlet arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(arr.includes(3));

Moraal: enne ülesande lahendamist kontrollige tingimata, kas selle lahendamiseks pole JavaScriptis sisseehitatud funktsiooni.

Задание 1

Järgmine kood kontrollib, kas string algab 'http'-ga. Tehke optimeerimine:

javascriptlet str = '';

if (str[0] + str[1] + str[2] + str[3] === 'http') {
  console.log('+++');
} else {
  console.log('---');
}
Задание 2

Järgmine kood täidab massiivi etteantud väärtusega. Tehke optimeerimine:

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