Optimizare prin funcții încorporate în JavaScript

Să presupunem că un programator verifică dacă într-un array există numărul 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);

Afirm că ceva nu este în regulă cu acest cod. Ce anume nu este în regulă, dacă ieșim din ciclu după ce am găsit numărul 3? Problema este că funcțiile încorporate în JavaScript întotdeauna lucrează mai rapid decât codul similar scris manual.

În cazul nostru există funcția includes, care rezolvă sarcina dată - și trebuie să folosim exact această funcție:

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

Morala: înainte de a rezolva o sarcină, asigurați-vă întotdeauna că nu există o funcție încorporată în JavaScript pentru rezolvarea ei.

Задание 1

Următorul cod verifică dacă șirul începe cu 'http'. Efectuați optimizarea:

javascriptlet str = '';

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

Următorul cod umple array-ul cu o valoare dată. Efectuați optimizarea:

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