gpt4 book ai didi

javascript - 使用对象名称和属性名称数组获取对象属性

转载 作者:行者123 更新时间:2023-11-28 18:25:36 25 4
gpt4 key购买 nike

我想从映射到属性位置的数组动态查找对象属性。

示例

 Var objectA = { a:{b:1} };
Var Names = ['objectA','a','b'];

如何通过循环数组名称来获取 b 的值?

最佳答案

假设 objectA 在全局范围内可用 (window.objectA),您可以执行如下操作:

names.reduce(function (memo, value) {
return memo[value];
}, window)

对于任何其他“非全局”变量,您可以创建一个 getter 函数,该函数将变量和路径(与您的名称类似的数组,但没有第一个值)作为参数:

function nestedValue(obj, path) {
return path.reduce(function (memo, value) {
return memo[value];
}, obj);
}

顺便说一句,请注意 Array.prototype.reduce() 是 ES2015 的功能,因此如果您需要与旧版浏览器兼容,则必须使用 的某些变体 循环执行此任务。

您还可以查看lodash.get以获得更复杂的解决方案(如果您愿意将其包含在您的项目中)。

关于javascript - 使用对象名称和属性名称数组获取对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39232923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com