如何在JSON Javascript中引用同级元素?

问题描述

我有一个用于图表的json对象,如下所示:

{
  "results": [
    {
      "dataSets": {
        "One": {
          "label": "testLabel","labels": "test","data": [
            "10","58"
          ]
        }
      },"chart": [
        {
          "key": "test","label": "chart-1","chartType": "bar","order": "1","dataSets": [
            {
              "style": "line","key": "One"
            },]
        }
      ]
    }
  ]
}

我想获取dataSets的{​​{1中的label的{​​{1}},labelsdata之类的one值}},方法是提供“ chart”作为关键字。

是否可以使用javascript或vue?

解决方法

是的,有可能。但是您将需要进行一系列Array.map()的操作。

const results = [{
  dataSets: {
    One: {
      label: "testLabel",labels: "test",data: ["10","58"]
    }
  },chart: [{
    key: "test",label: "chart-1",chartType: "bar",order: "1",dataSets: [{
      style: "line",key: "One"
    }]
  }]
}];

const modifiedResult = results.map(result => {
  const outerDataSets = result.dataSets;
  result.chart = result.chart.map(chart =>
    chart.dataSets.map(innerDataSet => ({
      ...innerDataSet,...outerDataSets[innerDataSet.key]
    }))
  );
  return result;
});

console.log(modifiedResult);

此外,如果您使用的是Vue,我认为最好将result的修改内容放在计算机上,以便它总是尝试将这些dataSets附加数据添加到图表的数据集中。

Here a sample demo for implementation in Vue