জাভাস্ক্রিপ্টে পণ্য ক্যালকুলেটরে মোট যোগফল
আসুন এখন এমন করা যাক যাতে টেবিলের নিচে কেনাকাটার মোট যোগফল দেখানো হয়। এখানে সূক্ষ্মতা আছে।
পরিস্থিতি বিবেচনা করলে, এটা স্পষ্ট হয়ে যাবে, যে যোগফল শুধুমাত্র নতুন কেনাকাটা যোগ করার সময়ই নয়, বরং মুছে দেয়ার এবং সম্পাদনা করার সময়ও সংশোধন করা উচিত।
আমি এই ক্ষেত্রে একটি নির্দিষ্ট ফাংশন তৈরি
করার প্রস্তাব দেব, এর নাম দিই recountTotal,
যা সম্পূর্ণ পুনরায় গণনা সম্পাদন করবে।
অর্থাৎ এটি একটি লুপ দিয়ে সমস্ত কেনাকাটার
মধ্যে দিয়ে চলবে এবং তাদের cost কলামের
বিষয়বস্তু যোগ করবে।
এইরকম একটি ফাংশন থাকলে, আমরা এটিকে যেকোনো জায়গায় কল করতে পারব, যেখানে মোট যোগফলের কোনো পরিবর্তন হতে পারে। অবশ্যই, প্রতিবার মোট যোগফল গণনা করা একটু অনুকূল নয়। কিন্তু আমরা কোডের উল্লেখযোগ্য সরলীকরণ পাব।
একটি নতুন কেনাকাটা তৈরি করার সময় অনুমানকৃত ফাংশনটি ব্যবহার করা যাক:
add.addEventListener('click', function() {
let tr = document.createElement('tr');
createCell(tr, name.value, 'name');
createCell(tr, price.value, 'price');
createCell(tr, amount.value, 'amount');
createCell(tr, price.value * amount.value, 'cost');
createCell(tr, 'মুছুন', 'remove');
table.appendChild(tr);
recountTotal(); // মোট যোগফল পুনরায় গণনা করব
});
বর্ণিত ফাংশনের একটি খসড়া এখানে:
function recountTotal() {
let costs = table.querySelectorAll('.cost');
if (costs) {
// যোগফল খুঁজে বের করি এবং এটিকে #total এ লিখি
}
}
আমি দ্বারা বর্ণিত recountTotal ফাংশনটি বাস্তবায়ন করুন।