Аптымізацыя пераўтварэння ў масіў у 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'));