Mise à jour Question Titre & description - du 17 Février 2017Comment puis-je Object.assign() valeurs par défaut à un autre objet partiellement complet uniquement pour les propriétés false hasOwnProperty?
Y at-il une fonction efficace qui remplit les propriétés manquantes seulement d'un objet par rapport à un objet de propriétés par défaut et les valeurs?
Je travaille actuellement sur une classe de bot qui récupère une API JSON en mettant à jour des appels Web. Object.assign(targetObj, sourceObj)
a beaucoup aidé mais je me demandais s'il y avait une autre méthode comme ça.
function (result) {
// default properties if they don't exist inside result object
const defaults = {
from: {
id: NaN,
username: ""
}
};
// Example "from" may not exist at all in the result object.
// Maybe "from" does exist in result and provides only an "id",
// but I don't want to overwrite the "id" and still provide
// the "username" with a default value if there isn't one.
}
Je pensais à plusieurs si le conditionnement hasOwnProperty
mais je me demande est-il une meilleure façon qu'une table si les conditions comme Object.assign()?
Je ne veux pas exiger un autre script ou utiliser npm pour cela.
La meilleure façon de faire un clone profond est [lodash's _.cloneDeep] (https://lodash.com/docs/4.17.4#cloneDeep) –