Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Duyệt mảng, đếm lần xuất hiện liên tiếp của 'true' trong JavaScript

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 ]