Cho mảng 't'/'f' đại diện true/false từ database:
const arr = ['f', 't', 'f', 't', 't', 't', 'f', 'f', 't', 't', 't', 't', 't', 't', 'f', 't'];
Viết hàm đếm các cụm 't' liên tiếp bị chèn giữa hai 'f', trả về mảng số lượng.
Kết quả: [1, 3, 6, 1]
Ví dụ
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));Kết quả
Kết quả in ra console:
[ 1, 3, 6, 1 ]