gpt4 book ai didi

javascript - 将 JSON 数据从字符串转换为 Chart.js 数组

转载 作者:行者123 更新时间:2023-12-01 01:58:46 25 4
gpt4 key购买 nike

我正在从存储为 Javascript 变量的 JSON 文件中提取数据:

var jsonFile = {
"profiles": [{
"time": 0,
"conc": 0.15,
"fitted": 0.1,
"non": 0,
"prior": 30,
"missed": 2.9,
"wrong": 2.9,
"mix": 0.15,
"temp": 0.015,
"gel": 0.03,
"data": 4
},
{
"time": 1,
"conc": 11,
"fitted": 10,
"non": 5,
"prior": 35,
"missed": 2.35,
"wrong": 25,
"mix": 11,
"temp": 1.1,
"gel": 2.2,
"data": 4
},
{...}
}];

我使用 map() 方法提取图表中特定行所需的数据对:

var dataPairs = jsonFile.profiles.map(function(e) {
return '{x:' + e.time + ', y:' + e.fitted + '}';
});

然后我尝试将其格式化为 Chart.js 所需的数组

var dataPairs2 = '[' + dataPairs + ']';

因此,对于图表 data 行,我会调用 dataPairs2。查看console.log(dataPairs2)后,我意识到它没有被视为数组。 dataPairs 和数组,但每个条目都是一个字符串,因此为 data 行调用它也不起作用。

所以,我试图弄清楚如何将 dataPairs2 转换为数组。 JSON.Parse() 似乎不起作用,因为它不是标准格式(我猜),而且我认为我不能使用 split()使用逗号作为分隔符,因为每个数组条目都包含一个逗号。

最佳答案

只需在第一次调用 map 时以这种方式格式化它们即可。不要使用 map 来生成字符串数组,而是使用它来生成对象数组。

jsonFile.profiles.map(v => ({ x: v.time, y: v.fitted }) );

var jsonFile = {
"profiles": [
{ "time": 0, "conc": 0.15, "fitted": 0.1, "non": 0, "prior": 30, "missed": 2.9, "wrong": 2.9, "mix": 0.15, "temp": 0.015, "gel": 0.03, "data": 4 },
{ "time": 1, "conc": 11, "fitted": 10, "non": 5, "prior": 35, "missed": 2.35, "wrong": 25, "mix": 11, "temp": 1.1, "gel": 2.2, "data": 4 }
]};

const d = jsonFile.profiles.map(v => ({ x: v.time, y: v.fitted }) );

console.log(d);

关于javascript - 将 JSON 数据从字符串转换为 Chart.js 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50787865/

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