Disons que nous avons un objet comme:Quelle est la meilleure façon de mettre à jour certaines propriétés d'un objet de manière immuable en JavaScript?
const obj = {
foo: {
a: { type: 'foo', baz: 1 },
b: { type: 'bar', baz: 2 },
c: { type: 'foo', baz: 3 }
}
}
Maintenant, je veux mettre à jour toutes les propriétés baz
-5
si le type
de la propriété dans foo
est foo
. Et je voudrais le modifier de façon immuable, c'est-à-dire qu'il ne modifierait pas l'objet origine mais retournerait un nouvel objet.
Vous voulez dire que vous voulez faire une nouvelle '{type: « foo »: baz: 5}' objet, ou si vous voulez un ensemble Nouvel objet 'obj'? – Barmar
vous pourriez copier en profondeur 'obj' puis apporter les modifications à la copie –
Oui, @JaromandaX! Mais une copie en profondeur (comme '_.deepClone') pourrait avoir un problème de performance si l'objet était un gros objet. Y a-t-il une idée sans copie profonde? –