javascript - 从数组对象中获取数字的总和
问题描述
我想得到所有数组项的总和。
const arr = [{ a: 1 }, { b: 5 }, { c: 2 }];
const app = (arr) => {
const r = arr.reduce((acc, nextValue) => {
return acc[Object.keys(acc)] + nextValue[Object.keys(nextValue)]
})
return r
}
console.log(app(arr))
所以,最后我想得到:8
=总和:{ a: 1 }, { b: 5 }, { c: 2 }
。
问题:为什么现在我得到NaN
结果?
解决方案
您需要一个零起始值和键数组的第一个键,而不是整个数组。
求和直接取累加器。
const arr = [{ a: 1 }, { b: 5 }, { c: 2 }];
const app = (arr) => {
const r = arr.reduce((acc, nextValue) => {
return acc + nextValue[Object.keys(nextValue)[0]];
}, 0);
return r;
};
console.log(app(arr));
推荐阅读
- docker - 无法从 Laravel 应用程序连接到 Redis
- python - MacOS High Sierra 10.13.6、python3.7安装安装Certificate.command导致SSLError
- apache-nifi - Nifi 通过 Rest-API 创建控制器服务
- java - 如何强制 Java 8 流按顺序执行?
- ibm-mq - 文件夹 /opt/mqm/properties/version/ 和 /opt/mqm/maintenance/8.0.0.6/MQSeriesFTAgent/backup/opt/mqm/properties/version 是否可以安全删除?
- python-2.7 - Python 2nd 动作未执行
- android - 滚动时编辑列表重复数据中的文本
- mysql - MySQL 查询到 QueryDsl 查询(处理别名)
- c# - Vlookup 多条件 C#
- plc - DN4800/MELDAS 500 CNC 机床 ATC 问题