J'ai actuellement une structure de données qui ressemble la plupart du temps comme suit:Modification de plusieurs objets à l'aide de lentilles Ramda
var data = { "id": 123,
"modules": [{
"id": 1,
"results": [{
"status": "fail",
"issues": [
{"type": "change", "status": "warn", "data": {}},
{"type": "remove", "status": "warn", "data": {}},
{"type": "change", "status": "warn", "data": {}}
]
}]
},{
"id": 2
"results": [{
"status": "pass",
"issues": [
{"type": "change", "status": "warn", "data": {}},
{"type": "remove", "status": "warn", "data": {}},
{"type": "change", "status": "warn", "data": {}}
]
}]
}]
}
J'ai essayé d'utiliser Ramda pour faire une requête de composition qui pourrait faire quelque chose comme, changer le statut de toutes les questions qui sont d'un certain type.
J'ai essayé de faire quelque chose dans le cadre de la composition de l'objectif à travers R.map/R.chain mais je n'arrive pas à le résoudre. Quelque chose comme ceci est ce que im essayant de faire:
let approvedData = R.compose(
R.set(R.__, 'approve', Data)
R.lensProp('status')
R.map(R.lensIndex),
R.lensProp('issues'),
R.map(R.lensIndex),
R.lensProp('results'),
R.map(R.lensIndex),
R.lensProp('modules')
)(Data)
et avoir revenir en arrière les données complet avec les statuts modifiés.
MISE À JOUR:
Je suis venu avec un code qui va faire ce que je suis en train de faire, mais je suis encore du mal à faire chacune des étapes dans des fonctions qui peuvent ensuite être composés:
R.over(R.lensProp('modules'), R.map(
R.over(R.lensProp('results'), R.map(
R.over(R.lensProp('issues'), R.map(
R.set(R.lensProp('status'), 'approve')
))
))
), Data)
Pourquoi $ (dollar) sur la mise à jour des modules de $ résultats $ problèmes de $ statut de $? Est-ce quelque chose lié à la PF? Je vous remercie. –
Aucune raison particulière. Underscores serait également bon. – davidchambers