首页 > 解决方案 > 使用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

    
});

我想为原始数组中的每个美国州返回一个带有键的对象,它的值是它在数组中出现的次数。

标签: javascript

解决方案


将初始值作为第二个参数传递{}给。reduce()并使用不同的变量名。

let stateMap = newCopArray.reduce((state, cop) => {
!state[cop.State] ? state[cop.State] = 1 : state[cop.State] += 1;
  return state;
}, {});


推荐阅读