javascript - 检索对象中嵌套的值

标签 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'] ?

提前谢谢您。

最佳答案

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

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

关于javascript - 检索对象中嵌套的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25687715/

相关文章:

javascript - 当我有带有 www 的 <base href> 时,没有 www 的链接无法正常工作

c++ - 以随机顺序遍历数组

php - php中如何循环访问对象

javascript - Discord.js guildMemberUpdate 事件

javascript - 无法获取Web api json响应的内容,返回空白

linux - bash 中的 awk 语句在 for 循环中不执行

jquery - 使用 jquery 或 javascript 对象内连接两个数组

javascript - 检查对象是否具有javascript中的一组属性

javascript - mustache 式数据绑定(bind)的通用名称是什么?

css - 如何设置 CSS 类名来自 ngFor 中的 json 对象数组 | Angular 6