我得到以下结果:
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)