Optimering deur ingeboude funksies in JavaScript

Laat 'n sekere programmeerder nagaan of daar die nommer 3 in die skikking is:

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

Ek beweer dat daar iets fout is met hierdie kode. Wat is verkeerd, ons breek tog uit die lus nadat ons die nommer 3 gevind het? Die saak is, dat ingeboude JavaScript-funksies altyd vinniger werk as soortgelyke selfgeskrewe kode.

In ons geval bestaan daar die funksie includes wat die gestelde probleem oplos - en ons moet presies hierdie funksie gebruik:

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

Die moraal: voor jy 'n probleem oplos, moet jy altyd nagaan of daar nie 'n ingeboude JavaScript-funksie is om dit op te los nie.

Задание 1

Die volgende kode kyk of 'n string met 'http' begin. Voer optimering uit:

javascriptlet str = '';

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

Die volgende kode vul 'n skikking met 'n gegewe waarde. Voer optimering uit:

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