ধরুন আমাদের কাছে 't'/'f' দ্বারা উপস্থাপিত সত্য/মিথ্যার একটি অ্যারে রয়েছে যা আমরা এইরকম কিছু ডাটাবেস থেকে পুনরুদ্ধার করেছি −
const arr = ['f', 't', 'f', 't', 't', 't', 'f', 'f', 't', 't', 't', 't', 't', 't', 'f', 't'];
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারেতে নেয়। আমাদের ফাংশনটি সেই 't'-এর ধারাবাহিক উপস্থিতি গণনা করা উচিত যা দুটি 'f'-এর মধ্যে স্যান্ডউইচ করা হয়েছে এবং সেই গণনার একটি অ্যারে ফেরত দেওয়া উচিত।
অতএব, উপরের অ্যারের জন্য, আউটপুটটি −
এর মত হওয়া উচিতconst output = [1, 3, 6, 1];
উদাহরণ
এর জন্য কোড হবে −
const arr = ['f', 't', 'f', 't', 't', 't', 'f', 'f', 't', 't', 't', 't', 't', 't', 'f', 't'];
const countClusters = (arr = []) => {
let res = [];
res = arr.reduce((acc, val) => {
const { length: l } = acc;
if(val === 't'){
acc[l - 1]++;
}
else if(acc[l - 1] !== 0){
acc.push(0);
};
return acc;
}, [0]);
return res;
};
console.log(countClusters(arr)); আউটপুট
এবং কনসোলে আউটপুট হবে −
[ 1, 3, 6, 1 ]