object.values()提取对象值后用reduce累加,需确保值为数字:基础写法适用于全数字对象;含非数字时用number()转换并过滤nan;一行式用typeof判断或||0兜底;空对象用??{}防护。

直接用 Object.values() 提取对象所有属性值,再传给 reduce() 累加即可。关键点是确保值都是数字,否则需先转换。
获取值并累加(基础写法)
适用于对象所有值都是数字的情况:
const obj = { a: 10, b: 20, c: 30 };
const sum = Object.values(obj).reduce((acc, val) => acc + val, 0);
console.log(sum); // 60
处理非数字值(安全转换)
如果对象可能含字符串、null、undefined 或其他类型,建议显式转为数字:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 用
Number(val)转换,无效值会变成NaN - 配合
isNaN()过滤掉非法值,避免总和变NaN
const obj = { a: '10', b: 20, c: null, d: 'abc', e: 30 };
const sum = Object.values(obj)
.map(Number)
.filter(val => !isNaN(val))
.reduce((acc, val) => acc + val, 0);
console.log(sum); // 60
一行写法(简洁但注意可读性)
适合简单场景,逻辑紧凑:
const sum = Object.values(obj).reduce((s, v) => s + (typeof v === 'number' ? v : Number(v) || 0), 0);
这里用短路运算 || 0 把 NaN 和假值兜底为 0,避免中断计算。
配合解构或默认值更健壮
若对象可能为空或为 null,提前防护:
- 用空对象
{}默认值防止Object.values(null)报错 - 确保
reduce初始值是数字0
const sum = Object.values(obj ?? {}).reduce((acc, val) => acc + Number(val), 0);
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










