JSFiddle - React, Tailwind, and code Playground
by Luiza CICONE
HTML
<pre id='result'>
</pre>
JavaScript
function constructDirecory(directory, name) {
// create list of files
var files = [];
if (directory.files) {
directory.files.forEach(function(fileName) {
files.push({
name: fileName
});
});
}
// loop list directories
var directories = [];
for (var childDirectoryName in directory) {
if (directory.hasOwnProperty(childDirectoryName)) {
if (childDirectoryName !== 'files') {
// it's a directory, see what's inside
var childDirectoryData = directory[childDirectoryName];
var directoryData = constructDirecory(childDirectoryData, childDirectoryName);
directories.push(directoryData);
}
}
}
return {
name: name || 'root',
files: files,
directories: directories
};
}
var data = {
"C:": {
"files": [],
"DataStore": {
"files": ["Continuous_2016-02-26_15.08.11.dat",
"Continuous_2016-02-26_15.38.10.dat",
"Continuous_2016-02-26_16.08.09.dat",
],
"c4": {
"160226": {
"files": [
"Continuous231.dat",
"Continuous_2016-02-26_16.21.58.dat",
"Continuous_2016-02-26_16.31.58.dat",
"Continuous_2016-02-26_16.41.58.dat",
"Continuous_2016-02-26_16.51.58.dat",
"Continuous_2016-02-26_17.01.58.dat",
"Continuous_2016-02-26_17.11.57.dat",
"Continuous_2016-02-26_17.21.57.dat",
"Continuous_2016-02-26_17.31.57.dat",
"Continuous_2016-02-26_17.41.57.dat"
]
},
"files": []
}
}
}
};
var result = constructDirecory(data);
$('#result').text(JSON.stringify(result, null, 2))