Est-il possible de mettre à jour uniquement les valeurs de propriété existantes d'un objet sans ajouter de nouvelles propriétés à partir d'un autre objet?
Voici mon exemple.
{"name":"sample","email":"sample@gmail.com"}
Résultat:
{"name":"sample","email":"sample@gmail.com","datofbirth":"6/2/1990"}
Résultat attendu:
form = {name: '',email: ''};
data = {name: 'sample', email: 'sample@gmail.com', datofbirth: '6/2/1990' };
form = {...form, ...data};
console.log(form);
Je ne veux pas que la date de naissance ou toute nouvelle propriété soit ajoutée à mon objet de formulaire. p >
3 Réponses :
Je ne suis pas sûr que ce soit ce que vous voulez, j'espère que cela vous aidera
const form = { name: '', email: '' };
const data = {
name: 'sample',
email: 'sample@gmail.com',
datofbirth: '6/2/1990',
};
Object.keys(form).forEach(key => {
if (data.hasOwnProperty(key)) {
form[key] = data[key];
}
});
console.log(form);
Un peu plus court: Object.keys (from) .map (key => form [key] = data [key]);
N'ajoutez que les clés que vous voulez dans la planche plutôt que l'objet entier
form = { ...form, name: data.name, email: data.email };
Parcourez toutes les clés sous forme de forme et générez un nouvel objet en utilisant Object.assign et spread syntax .
p >
const form = {name: '',email: ''},
data = {name: 'sample', email: 'sample@gmail.com', datofbirth: '6/2/1990' },
result = Object.assign(...Object.keys(form).map(k => ({[k] : data[k]})));
console.log(result);