我在我的一个项目中使用的是angular 4,因此我必须将所有{ data } 替换为{{ data }}。即如果我有这样的对象
{
key: {
key1: {
key2: "This is data {someData}",
key3: "This is data2 {someData2}"
}
},
key2: "This is data3 {someData3}"
}
Run Code Online (Sandbox Code Playgroud)
结果应该是
{
key: {
key1: {
key2: "This is data {{someData}}",
key3: "This is data2 {{someData2}}"
}
},
key2: "This is data3 {{someData3}}"
}
Run Code Online (Sandbox Code Playgroud)
我对递归的工作方式不满意。因此,我无法显示我尝试过的任何内容。请帮忙。任何帮助,将不胜感激。
希望你可以尝试这样的事情。
var orgObj = {
key: {
key1: {
key2: "This is data {someData}",
key3: "This is data2 {someData2}"
}
},
key2: "This is data3 {someData3}"
}
function changeValue(obj) {
if (typeof obj === 'object') {
// iterating over the object using for..in
for (var keys in obj) {
//checking if the current value is an object itself
if (typeof obj[keys] === 'object') {
// if so then again calling the same function
changeValue(obj[keys])
} else {
// else getting the value and replacing single { with {{ and so on
let keyValue = obj[keys].replace('{', '{{').replace('}', '}}');
obj[keys] = keyValue;
}
}
}
return obj;
}
console.log(changeValue(orgObj))Run Code Online (Sandbox Code Playgroud)