使用reduce转换对象的属性值?

时间:2018-10-02 03:44:40

标签: javascript ecmascript-6

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)

我只有最后一次迭代值。

2 个答案:

答案 0 :(得分:3)

您只需要使用...运算符将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)

答案 1 :(得分:1)

  

转换对象的属性值

使用reduce

的替代方法

尝试一下:

const obj = {
  "AL": "Alabama",
  "AK": "Alaska",
  "AS": "American Samoa"
}
let clone = {}
for (var propt in obj) {
  clone[propt] = `+ ${obj[propt]}`
}
console.log(clone )