Обновленный Заголовок вопроса & Описание - 17 февраля 2017 годаКак установить значения Object.assign() по умолчанию для другого частично полного объекта только для ложных свойств hasOwnProperty?
Есть ли эффективная функция, которая заполняет только недостающие свойства объекта по сравнению с объекта по умолчанию свойств и значений а?
В настоящее время я работаю над классом ботов, который извлекает API-интерфейс JSON путем обновления веб-вызовов. Object.assign(targetObj, sourceObj)
помог много, но задавался вопросом, есть ли другой метод.
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.
}
Я думал о нескольких, если кондиционер hasOwnProperty
но мне интересно, есть ли лучший способ, чем таблица, если условия, такие как Object.assign()?
Я не хочу требовать другого сценария или использовать для этого npm.
Лучший способ, которым я знаю, сделать глубокий клон [lodash's _.cloneDeep] (https://lodash.com/docs/4.17.4#cloneDeep) –