{r: {e: {c: {u: {r: "nois", string: "cba"}}}}}
3 Réponses :
Vous écrivez une boucle récursive qui itère sur toutes les valeurs de l'objet, puis split , reverse , join la valeur si la valeur est une chaîne.
Vous pouvez adopter une approche récursive et rechercher des objets ou des chaînes.
const reverseStrings = object => {
Object.entries(object).forEach(([k, v]) => {
if (v && typeof v === 'object') reverseStrings(v);
else if (typeof v === 'string') object[k] = Array.from(v).reverse().join('');
});
}
var object = { r: { e: { c: { u: { r: "sion", string: "abc" } } } } };
reverseStrings(object);
console.log(object);
C'était ce que je cherchais, merci!
Vous pouvez le faire avec une fonction récursive qui passera par les entrées d'objet de l'objet courant et utilisera .reduce pour le remettre dans objet :
const obj = { r: { e: { c: { u: { r: "sion", string: "abc" } } } } };
const reverseStrings = obj => {
return Object.entries(obj).reduce((acc, [k, v]) => {
if(typeof v === "object"){
acc[k] = reverseStrings(v);
}
else{
acc[k] = [...v].reverse().join('');
}
return acc;
}, {});
}
const result = reverseStrings(obj);
console.log(result)
Qu'avez-vous déjà essayé?