J'ai besoin de corriger les propriétés d'un objet dans ramda.js. Je voudrais ne pas utiliser de lentilles.Ajouter et renommer la propriété conditionnellement dans Ramda sans utiliser de lentille
Avoir les données suivantes j'ai besoin:
Si des objets dans les propriétés du tableau dans a
et b
un autres
ne pas la propriété « animationTimingFunction » ajouter la clé de la propriété « assouplissement » avec la valeur
ease
La propriété "animationTimingFunction" renomme cette propriété en "assouplissant" et conserve la valeur telle qu'elle est.
Données d'entrée:
let data = {
"a": [{
"opacity": "1",
"offset": "0"
}, {
"opacity": "0",
"offset": "0.25",
"animationTimingFunction": "linear"
}, {
"opacity": "1",
"offset": "0.5"
},
"b": [{
"transform": "scale3d(1, 1, 1)",
"offset": "0"
}, {
"transform": "scale3d(1.05, 1.05, 1.05)",
"offset": "0.5"
}, {
"transform": "scale3d(1, 1, 1)",
"offset": "1"
}]
};
sortie doit être:
let data = {
"a": [{
"opacity": "1",
"offset": "0",
"easing": "ease"
}, {
"opacity": "0",
"offset": "0.25",
"easing": "linear"
}, {
"opacity": "1",
"offset": "0.5",
"easing": "ease"
},
"b": [{
"transform": "scale3d(1, 1, 1)",
"offset": "0",
"easing": "ease"
}, {
"transform": "scale3d(1.05, 1.05, 1.05)",
"offset": "0.5",
"easing": "ease"
}, {
"transform": "scale3d(1, 1, 1)",
"offset": "1",
"easing": "ease"
}]
};
Pour commencer, j'ai essayé, mais je manque la partie condition:
let convertEasing = (data) =>{
let convert = data => R.assoc('easing', 'linear');
let result = R.map(R.map(convert(data)), data)
return result;
};
Merci Scott, j'ai essayé d'utiliser R.cond mais votre version est beaucoup plus claire. – GibboK