You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript返回语句中用&&运算符优化年龄过滤代码?

优化年龄过滤代码:单变量分组与输出格式调整

关于&&运算符的疑问

filter回调需要返回布尔值来筛选元素,使用&&无法实现同时收集两组数据的需求。比如return age >=18 && age本质等价于return age >=18(正数年龄的非零值会被转为布尔true),没法同时处理18岁以下的分组逻辑,因此不适合用&&来实现分组。

优化方案:单变量分组+指定格式输出

使用Array.reduce()只需遍历数组一次,即可将年龄分为两组并存入单个对象变量,同时生成符合要求的中文输出:

const ages = [10, 15, 18, 21, 24, 30, 32];
// 单个变量存储两组结果
const ageGroups = ages.reduce((result, age) => {
  age >= 18 ? result.canVote.push(age) : result.cannotVote.push(age);
  return result;
}, { canVote: [], cannotVote: [] });

// 输出指定格式的中文提示
console.log(`符合投票资格的年龄段:${ageGroups.canVote.join(',')}`);
console.log(`不符合投票资格的年龄段:${ageGroups.cannotVote.join(',')}`);

代码说明

  • reduce通过累积器result一次性完成分组,避免了两次filter遍历数组的冗余操作
  • join(',')将数组转换为逗号分隔的字符串,完全匹配你需要的输出格式
  • 三元运算符简化了分支判断逻辑,让代码更紧凑

内容的提问来源于stack exchange,提问作者mohit_pamma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 15:56:01