首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用其特定的子节点值-节点JS替换JSON节点值

用其特定的子节点值-节点JS替换JSON节点值
EN

Stack Overflow用户
提问于 2021-07-13 17:35:41
回答 1查看 227关注 0票数 0

我有这个JSON对象,我想用title.es和description.es子值替换所有的'title‘和'description’对象,比如: item.title = item.title.es,你能帮我找到正确的递归算法吗?我试图使用递归函数,但没有起作用。

代码语言:javascript
复制
[
  {
    "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"
            }
          }
        ]
      }
    ]
  }
]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-14 05:41:27

这应该适用于递归函数:

代码语言:javascript
复制
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 :)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68367049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档