javascript - 如何修改对象的javascript数组,例如将对象值修改为键值对

标签 javascript reactjs arrays json data-structures

我是 JavaScript 编程和 React 新手。我有一个数据结构,我使用 array.reduce 方法将其转换为下面给定的数组。

我的目标是重新构造数组,以便在图表中使用它来使用 React Chart JS 2 可视化数据。

const charData = [
    {
        "year": "2020",
        "value": [
            {
                "levelName": "Platinum",
                "yearlyCount": "1074"
            },
            {
                "levelName": "Gold",
                "yearlyCount": "1847"
            },
            {
                "levelName": "Silver",
                "yearlyCount": "4804"
            }
        ]
    }
]

我需要以下结构

[
{
"year": "2020",
"Platinum": "1074",
"Gold": "1847",
"silver": "4804"
}
]

最佳答案

mapreduce结合使用

const charData =  [
    {
        "year": "2020",
        "value": [
            {
                "levelName": "Platinum",
                "yearlyCount": "1074"
            },
            {
                "levelName": "Gold",
                "yearlyCount": "1847"
            },
            {
                "levelName": "Silver",
                "yearlyCount": "4804"
            }
        ]
    }
]

const res = charData.map(item => {
  const subRes = item.value.reduce((acc,i) => {
    return {
     ...acc,
     [i.levelName]  : i.yearlyCount
     
    }
  }, {})
  
  return {
    year: item.year,
    ...subRes,
  }
  
})

console.log(res)

关于javascript - 如何修改对象的javascript数组,例如将对象值修改为键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74725698/

相关文章:

javascript - Morris.js 未捕获类型错误 : Cannot read property 'match' of undefined

javascript - 在 HTML 文本框中扩展 JS 范围/选择

javascript - 如何在 javascript 中迭代 'fetch' 返回的结果?

javascript - 如果在 DOM 中手动编辑了文本节点,如何强制 React 更新它?

reactjs - 使用 react 路由器发送状态不起作用

javascript - 在 polymer 纸输入中以编程方式突出显示文本

reactjs - 如何在 react 中重置子组件状态

arrays - 带有字符串数组的 Swift 字典删除值

java - 调用 array.length 的成本是多少

java - 将循环结果放入数组后如何使用 ArrayList 和 For 循环?