遍历数组,在JavaScript中添加true的出现
假设我们有一个以't'/'f'表示的true/false数组,它是从这样的数据库中检索的-
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 ]