如何在第3个false条件的结果中显示当前日期与时间
实现第3个false条件条目显示当前日期时间的方案
我来帮你梳理下怎么实现这个需求哈~核心思路就是跟踪false条目的出现次数,当数到第3次的时候,给对应的条目设置当前时间。咱们一步步来改代码:
关键逻辑说明
- 先搞个计数器,专门记录已经出现的
value2为false的条目数量 - 每次生成或处理对象时,检查当前条目的
value2是否为false - 当计数器刚好到3的时候,把该条目的
datetime2替换成当前时间;其他情况保持原有逻辑即可
修改后的完整代码示例
const lists = [ { name: 'peter', value: false, datetime: (new Date().toString()) } ]; const showData = () => { const array = []; // 初始化false条目计数器 let falseCount = 0; // 这里模拟生成多个测试对象(你可以根据实际场景调整循环次数或生成逻辑) for(let i = 0; i < 10; i++) { const isFalse = Math.random() >= 0.5; // 只有value2为false时,计数器才递增 if(isFalse) { falseCount++; } const object = { name2: lists[0].name, value2: isFalse, // 核心判断:第3个false条目用当前时间,其余用原有值 datetime2: falseCount === 3 ? new Date().toString() : lists[0].datetime }; array.push(object); } // 如果是要处理已有的数组,也可以用reduce版本: /* const processedArray = array.reduce((acc, item) => { let currentCount = acc.falseCount; let updatedItem = {...item}; if(!updatedItem.value2) { currentCount++; if(currentCount === 3) { updatedItem.datetime2 = new Date().toString(); } } return { result: [...acc.result, updatedItem], falseCount: currentCount }; }, {result: [], falseCount: 0}).result; */ console.log(array); return array; }; // 调用测试 showData();
代码细节解释
falseCount变量专门用来统计false条目的数量,只有当value2为false时才会递增- 在生成
datetime2时,通过falseCount === 3的判断,精准定位到第3个false条目,给它设置当前时间 - 注释里的reduce版本,适合处理已经生成好的数组,逻辑和循环版本一致,只是用reduce来遍历统计
这样就能精准实现你要的需求啦~
内容的提问来源于stack exchange,提问作者Ras
相关产品推荐
相关产品推荐

