Массив ба Ҷаҳаннадиҳии таҳрирӣ дар JavaScript
Ҳамеша сатрро барои коре ба массив тақсим кардан зарур нест. Биёед ба мисол нигарем. Бигзор мо коди зеринро дорем:
let num = 123456789;
let arr = String(num).split('');
let sum = 0;
for (let elem of arr) {
sum += +elem;
}
console.log(sum);
Чаро ба массив тақсим кардан дар ин ҷо бад аст? Азбаски, аввалан, барои тақсим ба массив сарфаи CPU лозим аст, дуввуман, массиви ҳосилшуда дар хотираи оперативӣ ҷой ишғол мекунад (ва он аз ҷоиеро, ки худи сатр ишғол мекунад, бештар аст).
Дар асл бо истифода аз for-of
танҳо массивҳо на, балки сатрҳоро низ метавон такрор кард:
let num = 123456789;
let str = String(num);
let sum = 0;
for (let char of str) {
sum += +char;
}
console.log(sum);
Коди зерин ҷамъи рақамҳои рақами воридшударо дар input ҷустуҷӯ мекунад. Беҳтарсозиро иҷро кунед:
<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'));