Optimering via indbyggede funktioner i JavaScript

Lad os sige at en programmør tjekker, om der findes tallet 3 i et array:

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

Jeg påstår, at der er noget galt med denne kode. Hvad er der i vejen, vi forlader jo løkken efter at vi har fundet tallet 3? Sagens kerne er, at de indbyggede funktioner i JavaScript altid arbejder hurtigere end tilsvarende hjemmeskrevet kode.

I vores tilfælde findes der funktionen includes, der løser den stillede opgave, - og det er denne funktion, der bør bruges:

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

Moralen: Før du løser en opgave, skal du altid tjekke, om der ikke findes en indbygget JavaScript-funktion til at løse den.

Задание 1

Følgende kode tjekker, om en streng starter med 'http'. Udfør optimering:

javascriptlet str = '';

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

Følgende kode fylder et array med en given værdi. Udfør optimering:

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