Не уверен, что это самое лаконичное решение..
const R = require('ramda');
const input = [{
enabled: true,
categories: [{
enabled: false,
}, {
enabled: false,
}, {
enabled: true,
}],
}];
const setEnabled = entry => {
if (entry.enabled) {
return entry;
}
return Object.assign({}, entry, { enabled: true });
};
const walkCategory = entry => {
return Object.assign({}, entry, {
categories: R.map(setEnabled, entry.categories),
});
};
const result = R.map(walkCategory, input);
console.log(JSON.stringify(result, null, 2));
[
{
"enabled": true,
"categories": [
{
"enabled": true
},
{
"enabled": true
},
{
"enabled": true
}
]
}
]