Parse containers
by matox
JavaScript
let containers = [
{name: '10.10.10.12:/container 1', uuid: 'as213-asd-sadas2', free: 12312312},
{name: '10.10.10.12:/container 2', uuid: 'as213-asd-sadas2', free: 12312312321},
{name: '10.10.10.12:/container 3', uuid: 'as213-asd-sadas2', free: 12312123123},
{name: '10.10.10.12:/container 4', uuid: 'as213-asd-sadas2', free: 1231212312},
{name: '10.10.10.13:/container 1', uuid: 'as213-asd-sadas2', free: 121231232},
{name: '10.10.10.13:/container 2', uuid: 'as213-asd-sadas2', free: 1231131212},
{name: '10.10.10.13:/container 3', uuid: 'as213-asd-sadas2', free: 123121231232}
];
let clusters = [];
const delimiter = ':';
clusters = containers.map(container => {
[clusterName, ] = container.name.split(delimiter);
return {
i:clusters.length+1,
name:clusterName,
options:[]
}
})
// remove duplicates
clusters = clusters.filter((el, i, arr) => arr.map(obj => obj['name']).indexOf(el['name']) === i);
containers.map(container => {
[clusterName, containerName] = container.name.split(delimiter);
container.name = containerName;
clusters.filter(cluster => cluster.name === clusterName)[0].options.push(container)
});
console.table(clusters)