在 JavaScript 中使用点表示法字符串访问嵌套对象属性
操作对象时,通常需要访问深度嵌套的属性。虽然点表示法和括号表示法可以实现这一点,但它们需要单独指定每个嵌套级别。对于复杂的对象来说,这可能会变得乏味且容易出错。
实用的解决方案是利用点表示法字符串直接访问子对象属性。想象一个具有以下结构的对象:
const r = { a: 1, b: { b1: 11, b2: 99 } };
要使用点表示法访问值 99,您通常会编写:
r.b.b2;
但是,如果您想动态访问使用变量字符串的属性,例如:
const s = "b.b2";
在这种情况下,使用简单的点表示法(例如, r.s) 或方括号表示法 (r[s]) 不起作用。
用于属性检索的自定义函数
一种方法是创建一个自定义函数来拆分字符串并迭代访问属性:
function getDescendantProp(obj, desc) { const arr = desc.split("."); while (arr.length && (obj = obj[arr.shift()])); return obj; } console.log(getDescendantProp(r, "b.b2")); // 99
此函数简化了对嵌套属性的访问使用字符串表示。您还可以通过相应地修改分割字符来扩展它以处理数组索引访问。
以上是如何使用点表示法字符串访问嵌套 JavaScript 对象属性?的详细内容。更多信息请关注PHP中文网其他相关文章!