Vous cherchez un moyen de mise à jour en profondeur/fusion pour les tests:Une meilleure façon de mettre à jour en profondeur un objet en ES6 avec lodash ou toute autre bibliothèque
Actuellement, nous faisons cela:
{
..._companies,
['c124']: {
..._companies.c124,
['fields']: {
..._companies.c124.fields,
['f4']: {
..._companies.c124.fields.f4,
value: 'white'
}
}
}
quand l'idéal, nous ferions:
update_merge(_companies, {
c124: {
fields: {
f4: {
value:'white'
}
}
}
})
fusion profonde simple ne fonctionne pas dans ce cas car il remplace complètement la clé C124.
Les _companies d'origine Snippet:
const companies = {
c123: {
id: 123,
name: 'Company one',
fields: {...} // fields
},
c124: {
id: 124,
name: 'Company two',
fields: {
f1: {...}, //...fields
f2: {...}, //...fields
f3: {...}, //...fields
f4: {
id: 4,
fieldType: "shortText",longText
title: "favorite color",
value: 'green', // <==== only this will change
},
},
}
}
Ce résultat attendu:
const companies = {
c123: {
id: 123,
name: 'Company one',
fields: {...} // fields
},
c124: {
id: 124,
name: 'Company two',
fields: {
f1: {...}, //...fields
f2: {...}, //...fields
f3: {...}, //...fields
f4: {
id: 4,
fieldType: "shortText",longText
title: "favorite color",
value: 'white', // <==== this changed
},
},
}
}
Ajoutez-vous l'objet 'company' d'origine? –
... et le résultat attendu. –
@OriDrori Ajouté comme demandé – Guy