检索嵌套在对象中的值

时间:2014-09-05 14:02:35

标签: javascript loops object collections reference

问题:创建一个javascript函数,它接受一个对象(任何大小和深度),遍历它并在任何字符串上运行一些基本字符串替换并返回带有修改值的对象。

我有两个关于实现的想法,但无法找到解决方案:

var context = {
"test1": "123",
"test2": "123",
"test2.2": "123",
"test3": {
    "test4": "cats",
    "test5": {
        "test6": "test1",
        "test123": "1231232"
    }
}
};

想法1)

循环数组,并更改值

http://php.net/manual/en/language.references.pass.php

以某种方式类似于PHP

想法2)

为对象构建一个路径数组,因此要替换“test123”值,我可以创建这样一个数组:

['test3', 'test5', 'test123']

...这部分很简单,但我如何将其转换为:

context['test3']['test5']['test123'] ?

提前谢谢你。

1 个答案:

答案 0 :(得分:1)

如果手头的值是一个对象,则循环遍历该对象并递归调用该函数。在伪代码中:

function replaceInObject ( obj, find, repl)

    for key in obj

       value = obj[key]
       if value is object
           obj[key] = replaceInObject(value, find, repl)
       else
           obj[key] = value.replace(find, repl)

   return obj