Оптимизация через использование встроенных функций в 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;
}