Javascript:通过将路径作为字符串传递给对象来从对象中获取深层值(value)

标签 javascript syntax path

<分区>

Possible Duplicate:
Accessing nested JavaScript objects with string key

可能标题不够清楚,我只是不知道如何指定我要查找的内容,而且我的英语真的很糟糕,抱歉。

我正在尝试创建返回对象值的函数,但也能很好地处理嵌套对象。例如:

var obj = {
  foo: { bar: 'baz' }
};

我想通过向函数提供字符串“foo.bar”来访问 obj.foo.bar 的值。

function(obj, path) {
  // Path can be "foo.bar", or just "foo".
}

谢谢!

最佳答案

这可以正常工作:

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

这是证明/演示:jsfiddle.net/tadeck/5Pt2q/13/

编辑:我删除了冗余变量,缩短了代码。

关于Javascript:通过将路径作为字符串传递给对象来从对象中获取深层值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8817394/

相关文章:

git - 它的命令中的 git 点符号是更通用的东西的一部分吗?

c++ - 如何将整数初始化为 "a = {1,}"编译?

javascript - 函数中参数数量可变

python - CSS文件路径问题

javascript - 重新创建对象数组的方法返回重复相同对象的相同数组

javascript - 操作数组 ["delete", "cancel"] 和由字符串 "01"确定的权限

linux - 功能适用于相对路径输入但不适用于绝对路径输入

linux - 加载共享库时出错 : libpoppler. so.58: 无法打开共享对象文件

javascript - 如何制作具有简单视差效果的 Bootstrap 轮播?

javascript - 后台的音频播放器由前面的脚本控制-Chrome扩展