如果对象存在,如何设置值-如果不初始化并在javascript中设置对象



我得到以下结果:

const mainResult = { result: 1234}

我还有以下内容:

const allResults = {};

我想设置allResults.results.mainResult = mainResult

但是我不知道allResults.results是否存在。如果allResults.results不存在,我如何将其创建为对象并将其设置为mainResults?如果allResults.results.mainResults存在,我该如何将其设置?

有没有办法在一行中做到这一点?

想知道为什么这不起作用?因为我们只想写/覆盖它,而不是扩展对象(如果它存在的话(。

const mainResult = { result: 1234 };
const allResults = {};
allResults.results = { mainResult };
console.log(allResults);

我不知道是否有真正的单行解决方案,但我有一个强制单行解决方案。它是逻辑零赋值(??=(和逻辑and(&&(运算符的组合

const mainResult = { result: 1234 }
const allResults = {};
(allResults.results ??= {}) && (allResults.results.mainResult = mainResult)
console.log(allResults)

const mainResult = { result: 1234 }
const allResults = { results: { otherResult: 5678 } };
(allResults.results ??= {}) && (allResults.results.mainResult = mainResult)
console.log(allResults)

正如@Bergi所建议的,我们可以缩短

const mainResult = { result: 1234 }
const allResults = {};
(allResults.results ??= {}).mainResult = mainResult
console.log(allResults)

最新更新