স্ট্রিংয়ের মধ্যে থাকা এক-অঙ্কের সব সংখ্যা বের করে যোগফল করা।
সমাধান
const sumNum = (str) => {
// Regex দিয়ে সব ডিজিট বের করুন
const digits = str.match(/\d/g) || [];
return digits.reduce((sum, d) => sum + Number(d), 0);
};
// লুপ ভার্সন
const sumNumLoop = (str) => {
let sum = 0;
for (const char of str) {
if (char >= '0' && char <= '9') {
sum += Number(char);
}
}
return sum;
};
// টেস্ট
const str = 'uyyudfgdfgf5jgdfj3hbj4hbj3jbb4bbjj3jb5bjjb5bj3';
console.log(sumNum(str)); // 35
console.log(sumNumLoop(str)); // 35
বিকল্প: parseInt র্যাডিক্স
// char -> number কনভারশন
const charToNum = (char) => char.charCodeAt(0) - 48; // '0' = 48
const sumNumFast = (str) => {
let sum = 0;
for (let i = 0; i < str.length; i++) {
const code = str.charCodeAt(i);
if (code >= 48 && code <= 57) {
sum += code - 48;
}
}
return sum;
};
উৎপাদন
35