다음과 같은 일부 데이터베이스에서 검색한 't'/'f'로 표시되는 참/거짓 배열이 있다고 가정합니다. -
const arr = ['f', 't', 'f', 't', 't', 't', 'f', 'f', 't', 't', 't', 't', 't', 't', 'f', 't'];
우리는 그러한 배열을 취하는 JavaScript 함수를 작성해야 합니다. 우리의 함수는 두 개의 'f' 사이에 끼어 있는 't'의 연속적인 출현을 계산하고 해당 개수의 배열을 반환해야 합니다.
따라서 위의 배열의 경우 출력은 다음과 같아야 합니다. -
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 ]