如何替换字符串末尾的单词?JavaScript属性访问问题咨询
解决对象属性名变量访问的问题
你遇到的问题核心是:JavaScript里用.访问属性时,后面跟着的是固定的属性名字面量,不是变量。你写groupNames.subNames[0].Nicknames[0].coolNickname,JS会去找这个对象里叫coolNickname的属性,而不是用变量coolNickname的值当作属性名来查找,所以自然拿不到预期结果。
正确的做法是用方括号语法来访问属性,把变量放在方括号里:
// 把要访问的属性名存在变量里 var coolNickname = "Name"; // 用方括号引用变量作为属性名 var targetValue = groupNames.subNames[0].Nicknames[0][coolNickname];
这样就能正确获取到Name属性的值了。
如果是要在模板字符串里替换末尾的属性名,同样可以结合方括号语法:
var propName = "Name"; var formattedStr = `${groupNames.subNames[0].Nicknames[0][propName]}`;
总结一下:
- 当属性名是固定的字符串时,用
.语法更简洁 - 当属性名存在变量里,或者是动态生成的,必须用
[变量名]的方括号语法
内容的提问来源于stack exchange,提问作者emilien
相关产品推荐
相关产品推荐

