如何判断数组含unplanned条目且需交付项数>0时删除该条目?
解决方案
我来帮你搞定这个问题!你已经写出了核心的计数逻辑,只需要补充几个判断和数组操作就能达成需求啦。
完整实现代码
tickets.forEach(ticket => { // 统计当前ticket中需要交付的release数量 const requiredDeliverCount = ticket.releases.filter(release => release.needToBeDeliver).length; // 判断当前releases数组是否包含"unplanned"条目 const hasUnplannedRelease = ticket.releases.some(release => release.name === 'unplanned'); // 同时满足两个条件时,移除"unplanned"条目 if (requiredDeliverCount > 0 && hasUnplannedRelease) { ticket.releases = ticket.releases.filter(release => release.name !== 'unplanned'); } });
代码解释
- 计数需要交付的条目:用
filter方法筛选出所有needToBeDeliver为true的release,再取长度,比手动循环计数更简洁直观。 - 检查是否存在unplanned条目:用
some方法快速判断数组中是否有name为"unplanned"的元素,只要找到一个就返回true,效率更高。 - 过滤unplanned条目:当两个条件都满足时,用
filter重新生成releases数组,剔除掉name为"unplanned"的条目,并赋值回原ticket的releases属性。
验证结果
- Ticket1:没有unplanned条目,完全保持不变
- Ticket2:存在unplanned且需要交付的条目数>0,成功移除unplanned
- Ticket3、Ticket4:虽然存在unplanned,但需要交付的条目数为0,因此保留该条目
完全符合你给出的期望输出要求哦!
内容的提问来源于stack exchange,提问作者D.k
相关产品推荐
相关产品推荐

