offline version v3
Запись на курсы по HTML, CSS, JavaScript, PHP, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗jsSpOtAC 279 of 294 menu

Оптимизация преобразования в массив в JavaScript

Не всегда нужно разбивать строку в массив, чтобы что-то с ней сделать. Давайте посмотрим на примере. Пусть у нас есть следующий код:

let num = 123456789; let arr = String(num).split(''); let sum = 0; for (let elem of arr) { sum += +elem; } console.log(sum);

Почему здесь разбивать в массив плохо? Потому что, во-первых, на разбиение в массив тратятся ресурсы процессора, во-вторых, полученный массив будет занимать место в оперативной памяти (причем оно будет больше, чем место, которое занимает сама строка).

А ведь на самом деле с помощью for-of можно перебирать не только массивы, но и строки:

let num = 123456789; let str = String(num); let sum = 0; for (let char of str) { sum += +char; } console.log(sum);

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

<input> let input = document.querySelector('input'); input.addEventListener('blur', function() { let digits = input.value.split(''); let sum = 0; for (let digit of digits) { sum += +digit; } console.log(sum); });

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

let str = 'abcaab'; let arr = str.split(''); let i = 0; for (let elem of arr) { if (elem == 'a') { i++; } } console.log(i);

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

let str = 'abcaab'; let arr = str.split(''); console.log(arr.includes('a'));
enru