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

如何精简JavaScript函数?合并map、reduce与条件判断方法

精简JavaScript函数并整合map、reduce与条件判断

最终精简实现

直接用reduce一步完成过滤与求和,无需额外的map操作和辅助函数:

const items = [
  { prise: 40 },
  { prise: -120 },
  { prise: "505" },
  { prise: 350 },
];

const total = items.reduce((acc, item) => {
  const prise = item.prise;
  // 把条件判断直接嵌入累加逻辑
  return acc + (typeof prise === "number" && prise > 0 ? prise : 0);
}, 0); // 给reduce设置初始值0,避免空数组时返回undefined

更紧凑的写法(对象解构)

如果想进一步缩短代码,可以用对象解构直接提取prise属性:

const total = items.reduce((acc, { prise }) => 
  acc + (typeof prise === "number" && prise > 0 ? prise : 0), 
0);

精简逻辑说明

  1. 合并遍历步骤:原代码先通过map生成中间数组,再用reduce求和,需要两次遍历。精简后只用一次reduce遍历,既完成条件判断又完成累加,性能更优。
  2. 内嵌条件判断:把原isType函数的校验逻辑直接写到reduce回调里,用三元运算符替代if-else,让逻辑更紧凑。
  3. 设置初始值:给reduce指定初始值0,避免当items为空数组时,reduce返回undefined的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:55:18