Skip to content

Instantly share code, notes, and snippets.

@zymr-keshav
Last active June 26, 2018 06:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zymr-keshav/88b6ec37a18663621aff8964844d242c to your computer and use it in GitHub Desktop.
Save zymr-keshav/88b6ec37a18663621aff8964844d242c to your computer and use it in GitHub Desktop.
javascript array
const dataset = [
{
detail: {
team: [
{ name: 'alpha', game: 1 },
{ name: 'beta', game: 1 },
{ name: 'gamma', game: 1 },
{ name: 'delta', game: 1 },
{ name: 'echo', game: 1 }
]
}
},
{
detail: {
team: [
{ name: 'alpha', game: 2 },
{ name: 'beta', game: 2 },
{ name: 'echo', game: 2 },
{ name: 'gamma', game: 2 },
{ name: 'delta', game: 2 }
]
}
},
{
detail: {
team: [
{ name: 'echo', game: 1 },
{ name: 'delta', game: 0 },
{ name: 'beta', game: 0 },
{ name: 'gamma', game: 0 },
{ name: 'alpha', game: 0 }
]
}
},
{
detail: {
team: [
{ name: 'delta', game: 0 },
{ name: 'echo', game: 0 },
{ name: 'beta', game: 0 },
{ name: 'gamma', game: 1 },
{ name: 'alpha', game: 0 }
]
}
},
{
detail: {
team: [
{ name: 'delta', game: 0 },
{ name: 'echo', game: 0 },
{ name: 'alpha', game: 2 },
{ name: 'gamma', game: 3 },
{ name: 'beta', game: 2 }
]
}
},
{
detail: {
team: [
{ name: 'delta', game: 0 },
{ name: 'echo', game: 1 },
{ name: 'beta', game: 0 },
{ name: 'gamma', game: 2 },
{ name: 'alpha', game: 0 }
]
}
}
];
const rearrange = (input) => {
console.log('input: ', input);
const flat =
input.reduce((acc, object) => {
object.team.forEach((app) => {
let name = app.name;
acc[name] = acc[name] || [];
acc[name].push(app.game);
});
return acc;
}, {});
// console.log(flat);
const entries = Object.entries(flat);
// console.log(entries);
let output = entries.map(([label, data]) => ({ label, data }));
console.log(output);
return output;
}
const input = dataset.map((ds) => ds.detail);
//console.log(z);
const chartdata = rearrange(input);
console.log('chartdata: ', chartdata);
let desiredData = [
{
label: 'alpha',
data: [1, 2, 0, 0, 2, 0]
},
{
label: 'beta',
data: [1, 2, 0, 0, 2, 0]
},
{
label: 'gamma',
data: [1, 2, 0, 1, 3, 2]
},
{
label: 'delta',
data: [1, 2, 0, 0, 0, 0]
},
{
label: 'echo',
data: [1, 2, 1, 0, 0, 1]
}
];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment