0
votes

Mettre à jour le tableau d'objets sans ajouter de nouvelles propriétés à partir d'un autre objet

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 >


0 commentaires

3 Réponses :


1
votes

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


1 commentaires

Un peu plus court: Object.keys (from) .map (key => form [key] = data [key]);



0
votes

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


0 commentaires

0
votes

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


0 commentaires