Untitled
unknown
javascript
2 years ago
1.5 kB
9
Indexable
// Function to transform the input JSON object
function transformJson(input) {
// Initialize the output object with empty "AND" and "OR" arrays
let output = { "otherAllowedFilters": { "AND": [], "OR": [] } };
// Iterate over each filter in the input object's "otherAllowedFilters" array
input.otherAllowedFilters.forEach(filter => {
// Create a copy of the current filter
let newFilter = { ...filter };
// If the current filter has its own "otherAllowedFilters" array
if (filter.otherAllowedFilters) {
// Call the transformJson function recursively to transform that array
newFilter.otherAllowedFilters = transformJson({ "otherAllowedFilters": filter.otherAllowedFilters }).otherAllowedFilters;
}
// For each operation in the current filter's "operationsAllowed" array
filter.operationsAllowed.forEach(operation => {
// Add the transformed filter to the corresponding array in the output object
output.otherAllowedFilters[operation].push(newFilter);
});
});
// Return the transformed output object
return output;
}
// Usage
// Define the input JSON object
let jsonObject1 = {
"otherAllowedFilters": [
// ...
]
};
// Call the transformJson function to transform the input object
let jsonObject2 = transformJson(jsonObject1);
// Print the transformed object
console.log(JSON.stringify(jsonObject2, null, 2));Editor is loading...