我有这个JSON对象,我想用title.es和description.es子值替换所有的'title‘和'description’对象,比如: item.title = item.title.es,你能帮我找到正确的递归算法吗?我试图使用递归函数,但没有起作用。
[
{
"name": "aaa",
"title": {
"es": "dfghfdghgfhgfh",
"en": "hjklhjkljkhljkhlklj"
},
"services": [
{
"name": "aaa-1",
"title": {
"es": "dfgdfgsdfg",
"en": "dfghfgdhgfhgfhgf"
},
"services": [
{
"name": "aaa-1-1",
"title": {
"es": "dfghgfhfghgfdh",
"en": "dfghfgdhfgdhgfdh"
}
"description": {
"es": "sdfgfdsgfdg",
"en": "sertztrezrteztre"
}
}
]
},
{
"name": "aaa-2",
"title": {
"es": "ertzrtez",
"en": "ertuztzutzuztuzt"
}
},
]
},
{
"name": "bbb",
"title": {
"es": "sdfsdfdsf",
"en": "sdfsdfdsfdsfdsf"
},
"services": [
{
"name": "bbb-1",
"title": {
"es": "sdfsdfdsfdsf",
"en": "sdfdsfdsfds"
},
"services": [
{
"name": "bbb-1-1",
"title": {
"es": "werwerewrewr",
"en": "werwerwerwerew"
}
},
{
"name": "bbb-1-2",
"title": {
"es": "werewrewrwerewr",
"en": "werewrewrewrwerwerwerwerewr"
}
}
]
}
]
}
]发布于 2021-07-14 05:41:27
这应该适用于递归函数:
function iter(o) {
Object.keys(o).forEach((k) => {
console.log(k);
if (k === 'title' || k === 'description') {
console.log(o[k]);
o[k] = o[k].en;
return;
}
if (o[k] !== null && typeof o[k] === 'object') {
iter(o[k]);
}
});
}
iter(obj);这是一个修改后的版本:another SO answer :)
https://stackoverflow.com/questions/68367049
复制相似问题