# Оптимизация через использование встроенных функций в JavaScript

Пусть некий программист проверяет, есть ли в массиве число `3`:

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

Я утверждаю, что с этим кодом что-то не так. Что же не в порядке, мы же выходим из цикла после того, как нашли число `3`? Дело в том, что встроенные в JavaScript функции всегда работают быстрее аналогичного самописного кода.

В нашем случае существует функция `includes`, решающая поставленную задачу, - и пользоваться нужно именно этой функцией:

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

Мораль: перед решением задачи обязательно проверяйте, нету ли для ее решения встроенной функции JavaScript.

Следующий код проверяет, начинается ли строка на `'http'`. Выполните оптимизацию:

`let str = 'http://code.mu'; if (str[0] + str[1] + str[2] + str[3] === 'http') { console.log('+++'); } else { console.log('---'); }`

Следующий код заполняет массив заданным значением. Выполните оптимизацию:

`let 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; }`
←→
↑
en ru