首页 >web前端 >js教程 >如何在 JavaScript 中使用点表示法字符串访问嵌套对象属性?

如何在 JavaScript 中使用点表示法字符串访问嵌套对象属性?

Susan Sarandon
Susan Sarandon原创
2024-11-30 02:19:12508浏览

How to Access Nested Object Properties Using Dot Notation Strings in JavaScript?

通过点表示法字符串访问对象子属性

处理嵌套对象时,访问深埋的属性可能很麻烦。使用字符串点表示法确定实现此目的的理想方法让许多开发人员感到困惑。

考虑一个定义如下的对象:

var r = { a: 1, b: { b1: 11, b2: 99 } };

要访问 b2 的值,通常可以使用:

r.b.b2
r['b']['b2']

但是,定义像 var s = "b.b2" 这样的字符串并尝试访问 r[s]否则 r.s 将失败。

解决方案:

一种方法涉及创建一个自定义函数,该函数将字符串按点分割并迭代检索所需的属性。一个简单的示例是:

function getDescendantProp(obj, desc) {
    var arr = desc.split(".");
    while (arr.length && (obj = obj[arr.shift()]));
    return obj;
}

console.log(getDescendantProp(r, "b.b2")); // Outputs 99

此函数根据点分隔的路径递归地降低对象层次结构,返回最终值。值得注意的是,它还可以使用点表示法处理访问数组索引:

console.log(getDescendantProp({ a: [1, 2, 3] }, 'a.2')); // Outputs 3

以上是如何在 JavaScript 中使用点表示法字符串访问嵌套对象属性?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn