gpt4 book ai didi

javascript - 尝试为数组中的每个项目创建一个新的 json 对象

转载 作者:行者123 更新时间:2023-11-28 13:31:38 25 4
gpt4 key购买 nike

我有具有这种结构的大型 json 文件,每个文件中只有更多图表:

{ 
"Name": "test",
"Charts": [
{
"chartName": "Idle Times",
"disk": 0,
"OpCode": "Read",
"xAxis": [0,100,200,300,400,500],
"yAxis": [337487,8565,11419,9704,7598]
},
{
"chartName": "Idle Times",
"disk": 0,
"OpCode": "Read",
"xAxis": [0,100,200,300,400,500],
"yAxis": [337487,8565,11419,9704,7598]
}]
}

问题是所有图表数据(x-y 数据)都在数组中,而我使用的 javascript 图表工具需要 json 如下所示:

{"chartName":"Idle Times", "disk":0, "OpCode":"Read","xAxis":0, "yAxis":1234},
{"chartName":"Idle Times", "disk":0, "OpCode":"Read","xAxis":100, "yAxis":1234},
{"chartName":"Idle Times", "disk":0, "OpCode":"Read","xAxis":200, "yAxis":1234},
{"chartName":"Idle Times", "disk":0, "OpCode":"Read","xAxis":300, "yAxis":1234},
{"chartName":"Idle Times", "disk":0, "OpCode":"Read","xAxis":400, "yAxis":1234},
{"chartName":"Idle Times", "disk":0, "OpCode":"Read","xAxis":500, "yAxis":1234},
{"chartName":"Idle Times", "disk":0, "OpCode":"Read","xAxis":600, "yAxis":1234}

我的应用程序当前正在使用 AngularJS、JSLINQ、D3JS 和 DimpleJS。如果有一种方法可以使用这些工具来完成此任务,那就太理想了。我也对另一个开源库持开放态度,我只是希望我不必读取整个 json 文件并用一堆复杂的 for 循环将其恢复,基本上是逐行手动构建新的 json 。

如果有什么东西可以像我现在那样读取 json 数据,我也愿意切换到另一个图表工具,DimpleJS 非常易于使用,而且看起来非常清晰。

预先感谢您的帮助!

最佳答案

那么,如果我理解正确的话,您想将每个 xy 坐标扩展为单独的点吗?尝试这样的事情:

var source = { 
"Name": "test",
"Charts": [
{
"chartName": "Idle Times",
"disk": 0,
"OpCode": "Read",
"xAxis": [0,100,200,300,400,500],
"yAxis": [337487,8565,11419,9704,7598]
},
{
"chartName": "Idle Times",
"disk": 0,
"OpCode": "Read",
"xAxis": [0,100,200,300,400,500],
"yAxis": [337487,8565,11419,9704,7598]
}]
};

var data = source.Charts.reduce(function(prev, now) {
var target = [];
for(var i = 0, len = now.yAxis.length; i < len; i++) {
target.push({
"chartName": now.chartName,
"disk": now.disk,
"OpCode": now.OpCode,
"xAxis": now.xAxis[i],
"yAxis": now.yAxis[i]
})
}
return prev.concat(target)
}, [])

只要您拥有相同数量的积分,这应该有效。

关于javascript - 尝试为数组中的每个项目创建一个新的 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24331436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com