Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何重命名数组中对象的属性。解决这项任务的正确方法是什么?_Javascript_Vue.js_Chart.js_Vue Chartjs - Fatal编程技术网

Javascript 如何重命名数组中对象的属性。解决这项任务的正确方法是什么?

Javascript 如何重命名数组中对象的属性。解决这项任务的正确方法是什么?,javascript,vue.js,chart.js,vue-chartjs,Javascript,Vue.js,Chart.js,Vue Chartjs,我需要建立一个图表, 有一个包含图表数据对象的数组 "graphicDetails": [ { "hour": 0, "businessOperationPlansTotalDemand": 8.201753196882908, "employeesCount": 0, "businessOperationPlans": [ {

我需要建立一个图表, 有一个包含图表数据对象的数组

"graphicDetails": [
          {
            "hour": 0,
            "businessOperationPlansTotalDemand": 8.201753196882908,
            "employeesCount": 0,
            "businessOperationPlans": [
              {
                "name": "operation0",
                "value": 5.999355066255491
              },
            ]
          },
          {
            "hour": 1,
            "businessOperationPlansTotalDemand": 7.450044665662842,
            "employeesCount": 3,
            "businessOperationPlans": []
          },
          {
            "hour": 2,
            "businessOperationPlansTotalDemand": 5.814536267254451,
            "employeesCount": 5,
            ....
要在图表库(chartjs)中绘制它,我需要对象带有字段
{x:hour,y:businessOperationPlansTotalDemand等}
。例如:

data: [
    { x: 0, y: 5.815634, businessOperationPlans: [{operation: ...}] ,
    { x: 1, y: 2.23232, businessOperationPlans: [{operation2: ...}] ,
    ...
]
我知道我可以使用forEach或类似的方法来重命名属性,但解决此任务的正确方法是什么?也许我应该让后端以其他格式生成数据


也许我需要在此基础上创建一个具有其他属性的新数组,并将其放在Vue中的computed字段中?我如何才能做到这一点?

您可以创建一个新阵列,并根据新阵列结构进行设计。如果您使用的是任何后端,请从那里创建结构并在computed中处理相同的内容,而不是将其放入mounted中,以便在安装组件时加载相同的内容。最好的方法是从后端处理数据集。

您可以使用

map()方法使用调用 在调用数组中的每个元素上提供函数

const graphicsdetails=[{
“小时”:0,
“业务运营计划总需求”:8.201753196882908,
“employeesCount”:0,
“业务运营计划”:[{
“名称”:“操作0”,
“价值”:5.999355066255491
}, ]
},
{
“小时”:1,
“业务运营计划总需求”:7.450044665662842,
“雇员搜索”:3,
“业务运营计划”:[]
}
];
const newData=graphicDetails.map(a=>{
返回{x:a.hour,y:a.businessOperationPlansTotalDemand,businessOperationPlans:a.businessOperationPlans};
})

console.log(newData)如果您需要推荐,那么-我会说ask BE为您提供适当的格式,在FE控制数据流模块从来都不是一个好主意。您可以在VS中使用Ctrl+H编辑json。