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);