JSFiddle - React, Tailwind, and code Playground
Reversing a mapping of temaplates
by Nalin Sajwan
JavaScript
var mapping = {
"templates": [
"DCAM 2.1",
"DCAM 1.3"
],
"question_mapping": [
[
[ "1-1" ], [ "1-1-1", "1-1-2" ]
],
[
[ "1-2" ], [ "1-2-1", "1-2-2", "1-2-3", "1-2-4" ]
],
[
[ "1-3", "1-4" ], [ "1-3-1", "1-3-2", "1-4-1", "1-4-2" ]
]
],
"levels": [
[
[ "Initiated_2.1" ], [ "Initiated_1.3" ]
]
]
};
console.log("mapping ==> ", JSON.stringify(mapping, null, 4));
function remapArrayIndexes (mapDataObj) {
let mapData = JSON.parse(JSON.stringify( mapDataObj ));
for (var key in mapData) {
if (mapData[ key ][0] instanceof Array) {
for (let i = 0; i < mapData[ key ].length; i++) {
let firstElement = JSON.parse(JSON.stringify( mapData[ key ][i][0] ));
mapData[ key ][i].splice(0, 1)
mapData[ key ][i].push(firstElement)
}
} else {
let firstElement = JSON.parse(JSON.stringify( mapData[ key ][0] ));
mapData[ key ].splice(0, 1)
mapData[ key ].push(firstElement)
}
};
return mapData;
}
console.log("reverse mapping ==> ", JSON.stringify(remapArrayIndexes(mapping), null, 4));