gpt4 book ai didi

javascript - 将变量与嵌套的 Javascript 对象一起使用

转载 作者:可可西里 更新时间:2023-11-01 01:46:05 25 4
gpt4 key购买 nike

假设我有这个:

var a = { A : { AA : 1 }, B : 2 };

有没有办法让我创建一个可以让我引用 AA 或 B 的变量?语法是什么样的?

// I know I can do this:    
a['B']; // 2
a['A']['AA']; // 1

// something like this?
var myRef = ???;
a[myRef]; 1 or 2 depending on myRef

如果没有,什么是更好的方法来获得我想要的东西?

最佳答案

不直接。

解决方案 1 - 使用对象扁平化

展平对象,得到新对象 var a = { 'A.AA' : 1; B : 2 };.

参见 compressing object hierarchies in JavaScriptFlattening a complex json object for mvc binding获取它的 javascript 函数。

解决方案 2 - 编写键路径访问器

我可以看到 Eugen 已经解决了这个问题。重新发布代码审查版本:

function Leaf(obj,path) {
path=path.split('.');
var res=obj;
for (var i=0;i<path.length;i++) res=res[path[i]];
return res;
}

解决方案 3 - 使用 eval

var x = eval("a." + myRef); // x will be 1 for myRef == "A.AA", 2 for "B"

请谨慎使用此解决方案,因为您可能会引入一些安全问题。更多的是好奇心。

关于javascript - 将变量与嵌套的 Javascript 对象一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8750362/

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