Je ne suis pas vraiment sûr de la baissés notion, mais pour que je pense que je voudrais utiliser Object.assign(), en utilisant le propriété dénombrable:
"use strict"
let person1 = { name: 'Doe', age: 25 }
let person2 = { name: '' }
for (let key in person1) {
if (!person2.hasOwnProperty(key)) {
Object.defineProperty(person1, key, { enumerable: false })
}
}
let person = Object.assign(person2, person1)
console.log(person) // { name: 'Doe' }
Il y a forcément beaucoup de façons de le faire, comme l'a suggéré dans les autres réponses, et vous pouvez certainement en faire un prototype si vous avez besoin de cette façon.
modifier:
Je réalise ma première tentative ne fut pas très bon du tout comme il changer les objets initiaux.
Je profite de cela pour le rendre plus simple:
let Person = function() {}
Person.prototype.downcast = function (p1, p2) {
let c = {}
for (let k in p1) {
if (p2.hasOwnProperty(k)) {
c[k] = p1[k]
}
}
return c
}
let person = new Person().downcast(person1, person2)
console.log(person) // { name: 'Doe' }
Pourquoi avez-vous besoin même « baissés » il? Est-ce important si l'objet a des propriétés supplémentaires? –
Oui, c'est important. J'affecte une variable au type défini par IBM BPM Framework. Si j'ai des propriétés supplémentaires, il est dit qu'elles ne sont pas définies dans le type de données. –
@JosueGarcia Le framework génère donc une erreur s'il y a des données supplémentaires? Sinon, il n'y a aucune raison de supprimer les propriétés supplémentaires. Si oui, j'ai donné une réponse ci-dessous. –