javascript - 使用reduce创建新对象但它更新旧对象
问题描述
嗨,我正在使用 reduce 来获取一个数组并返回一个对象。问题是它不断用新的键和值更新旧对象,而不是创建一个新对象。
let stateMap = newCopArray.reduce((stateMap, cop) => {
let stateKey = cop.State;
if (stateMap[stateKey] === undefined) {
stateMap[stateKey] = 1;
} else {
stateMap[stateKey] += 1;
}
return stateMap
});
我想为原始数组中的每个美国州返回一个带有键的对象,它的值是它在数组中出现的次数。
解决方案
将初始值作为第二个参数传递{}
给。reduce()
并使用不同的变量名。
let stateMap = newCopArray.reduce((state, cop) => {
!state[cop.State] ? state[cop.State] = 1 : state[cop.State] += 1;
return state;
}, {});
推荐阅读
- php - 如何删除一个php循环以减少mysql查询的数量
- json - 使用 Newtonsoft Json 获取 json 属性类型
- javascript - 做出反应。如何将 setState 中的键与数组索引一起使用?
- base64 - 在 Codenameone App 中将 Base64 签名捕获为黑色方框
- shader - 框架中照明对象的纹理
- c# - Dapper.Net - QueryMultiple 与返回多个结果的存储过程一起使用
- node.js - 使用 Exchange 2010 (Node.js) 配置 Nodemailer 4.6.3 的问题
- python-3.x - 为什么会立即从 asyncio 任务中引发此异常?
- tensorflow - Tensorflow:使用 slim.dataset.Dataset 时,有没有办法将标签 ID 值映射到其他值?
- postgresql - 如何插入具有行级安全性的表?