在 JavaScript 中迭代数组,添加 true 的出现次数
javascriptweb developmentfront end technologyobject oriented programming
假设我们有一个由 't'/'f' 表示的 true/false 数组我们从类似这样的数据库中检索到 −
const arr = ['f', 't', 'f', 't', 't', 't', '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 ]