首页 > 解决方案 > 使用reduce转换对象的属性值?

问题描述

const ori = {
    "AL": "Alabama",
    "AK": "Alaska",
    "AS": "American Samoa"
}

如何将上面的对象数组连接到

{
    "AL": "+ Alabama",
    "AK": "+ Alaska",
    "AS": "+ American Samoa"
}

使用减少?

我试过了

const r = Object.entries(ori).reduce((accum, [key, value], i) => {
    console.log(key)
    accum = {[key]: `+ ${value}`}

    return accum
},{})
console.log(r)

我只得到了最后一次迭代值。

标签: javascriptecmascript-6

解决方案


您只需要使用...运算符将​​ 的当前值accum与下一个条目结合起来:

const ori = {
    "AL": "Alabama",
    "AK": "Alaska",
    "AS": "American Samoa"
}

const r = Object.entries(ori).reduce((accum, [key, value]) => {
    console.log(key)
    return {...accum, [key]: `+ ${value}`};
},{})
console.log(r)


推荐阅读