如何使用链式语法获取键名含空格的JavaScript嵌套对象属性
调整方案
JavaScript 中带空格、特殊字符或数字开头的属性键无法通过点运算符直接访问,你只需要把原本的 .level1 替换为方括号语法的 ['level 1'] 即可,修改后的完整代码如下:
var level3 = (((test || {})['level 1'] || {}).level2 || {}).level3; alert( level3 );
逻辑说明
- 方括号语法要求传入字符串格式的键名,单引号/双引号都可以使用,只要保证和代码其他部分的引号规则不冲突即可
- 原有写法的短路兜底逻辑完全保留,依然可以避免中间层级不存在时抛出的
Cannot read properties of undefined报错,和原写法的容错效果完全一致
内容的提问来源于stack exchange,提问作者copenndthagen
相关产品推荐
相关产品推荐

