json - 如何在 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"
},
]
}
]
}
]
}
我想通过提供“<code>one”作为键来获取“<code>one”中的“ <code>one”之类的dataSets
值。label
labels
data
chart
dataSets
可以用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
额外数据添加到图表的数据集中。
推荐阅读
- python - Plotly:如何使用长格式或宽格式的 pandas 数据框制作线图?
- arrays - 打印数组值而不是其名称
- python - MAC 中的 Django 环境变量 - os.environ.get() 返回无
- android - 为什么我的 Firestore 应用程序代码中的权限被拒绝,但 Firestore 控制台测试有效?
- python - 可以在多个选项卡中并行运行 selenium 测试
- vue.js - 如何使用与主应用程序相同的 vue 实例安装 vue 插件
- python - 什么是工厂、单例、观察者设计模式?(哎呀)
- mysql - mysql中两行之间的差异总和
- objective-c - Objective c 如何将 AVCaptureDevice 曝光重置为默认值
- php - 在 PHP 中将数据插入 SQL Server