Optimering med inbyggda funktioner i JavaScript

Låt oss säga att en programmerare kontrollerar om det finns siffran 3 i en 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);

Jag hävdar att det är något fel med den här koden. Vad är det för fel, vi avslutar ju loopen efter att vi har hittat siffran 3? Saken är den, att de inbyggda funktionerna i JavaScript alltid är snabbare än motsvarande egenkodad programkod.

I vårt fall finns funktionen includes, som löser den givna uppgiften, - och man bör använda just denna funktion:

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

Slutsats: innan du löser en uppgift, se till att kontrollera om det finns en inbyggd JavaScript-funktion för dess lösning.

Задание 1

Följande kod kontrollerar om en sträng börjar med 'http'. Utför optimering:

javascriptlet str = '';

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

Följande kod fyller en array med ett givet värde. Utfö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;
}