问题:创建一个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'] ?
提前谢谢你。
答案 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