এই প্রোগ্রামে একটি স্ট্রিংয়ের মধ্যে থাকা সকল এক-অঙ্কের সংখ্যা বের করে তাদের যোগফল বের করা হয়।
উদাহরণ
str = 'gdf5jhhj3hbj4hbj3jbb4bbjj3jb5bjjb5bj3' // সংখ্যাগুলো: 5, 3, 4, 3, 4, 3, 5, 5, 5, 3 // যোগফল: 35
সমাধান
const sumStringNum = (str) => {
// রেগেক্স ব্যবহার করে সব ডিজিট বের করুন
const digits = str.match(/\d/g) || [];
// রিডিউস করে যোগফল বের করুন
return digits.reduce((sum, digit) => sum + Number(digit), 0);
};
// বিকল্প: লুপ ব্যবহার করে
const sumStringNumLoop = (str) => {
let sum = 0;
for (const char of str) {
if (char >= '0' && char <= '9') {
sum += Number(char);
}
}
return sum;
};
// টেস্ট
const str = 'gdf5jhhj3hbj4hbj3jbb4bbjj3jb5bjjb5bj3';
console.log(sumStringNum(str)); // 35
console.log(sumStringNumLoop(str)); // 35
নোট: বড় সংখ্যা হ্যান্ডলিং
যদি স্ট্রিংয়ে একাধিক অঙ্কের সংখ্যা থাকে (যেমন "abc123def45") এবং আপনি পূর্ণ সংখ্যাগুলো যোগ করতে চান:
const sumFullNumbers = (str) => {
const numbers = str.match(/\d+/g) || [];
return numbers.reduce((sum, num) => sum + Number(num), 0);
};
console.log(sumFullNumbers("abc123def45")); // 168 (123+45)
উৎপাদন
35