I receive data from the server in this form:
jsonData = [{vid: "General uneven corrosion", ver: "95"},
{vid: "General uneven corrosion", ver: "95"},
{vid: "General uneven corrosion", ver: "80"},
{vid: "General uneven corrosion", ver: "80"},
{vid: "General uneven corrosion", ver: "60"},
{vid: "General uneven corrosion", ver: "20"},
{vid: "General uneven corrosion", ver: "20"},
{vid: "Increase in strength characteristics", ver: "80"},
{vid: "Increase in strength characteristics", ver: "40"},
{vid: "Increase in strength characteristics", ver: "40"},
{vid: "Increase in hardness", ver: "95"},
{vid: "Increase in hardness", ver: "60"}
{vid: "Increase in hardness", ver: "40"},
{vid: "Decreased ductility", ver: "60"},
{vid: "Decreased ductility", ver: "60"},
{vid: "Decreased ductility", ver: "60"},
{vid: "Decreased ductility", ver: "60"},
{vid: "Decreased ductility", ver: "40"},
{vid: "Decreased ductility", ver: "40"},
{vid: "Decreased ductility", ver: "20"}]
For the graph, I need to transform the data into the following form:
var data = [
{
state: 'General uneven corrosion',
stats: [95,95,80,80,60,20,20]
},
{
state: 'Increase in strength characteristics',
stats: [80,40,40]
},
{
state: 'Increase in hardness',
stats: [95,60,40]
},
{
state: 'Decreased ductility',
stats: [60,60,60,60,40,40,20]
}]
I filtered the received data:
var fltrd = []
fltrd.push(jsonData.filter(item => item.vid.includes(jsonData[0].vid)))
for (let j=0; j < jsonData.length; j++) {
if (j > 0 && j < jsonData.length && jsonData[j - 1].vid !== jsonData[j].vid) {
fltrd.push(jsonData.filter(item => item.vid.includes(jsonData[j].vid)))}
}
console.log (fltrd)
...and got an array:
[[{vid: "General uneven corrosion", ver: "95"},
{vid: "General uneven corrosion", ver: "95"},
{vid: "General uneven corrosion", ver: "80"},
{vid: "General uneven corrosion", ver: "80"},
{vid: "General uneven corrosion", ver: "60"},
{vid: "General uneven corrosion", ver: "20"},
{vid: "General uneven corrosion", ver: "20"}],
[{vid: "Increase in strength characteristics", ver: "80"},
{vid: "Increase in strength characteristics", ver: "40"},
{vid: "Increase in strength characteristics", ver: "40"}],
[{vid: "Increase in hardness", ver: "95"},
{vid: "Increase in hardness", ver: "60"}
{vid: "Increase in hardness", ver: "40"}],
[{vid: "Decreased ductility", ver: "60"},
{vid: "Decreased ductility", ver: "60"},
{vid: "Decreased ductility", ver: "60"},
{vid: "Decreased ductility", ver: "60"},
{vid: "Decreased ductility", ver: "40"},
{vid: "Decreased ductility", ver: "40"},
{vid: "Decreased ductility", ver: "20"}]]
Please help to bring to the right form. Maybe I'm going the wrong way and better use the D3 methods? I have little experience, please help. Thank you