JavaScript 在对象中递归替换

标签 javascript

各位,我有以下 JSON 对象,我想在其中递归地查找 foobar 的每次出现。

此外,[Object] 可能包含也需要替换的 foo

{ _id: 530797d8952e10129f97fde3,
  Product: 'something',
  Realm: [ 'something', 'something','foo' ],
  Service: 'Node',
  Owners: [ 'foo', 'something' ],
  Project: 'something',
  URLs:
    [ { 'foo': [Object] },
      { 'foo': [Object] },
      { 'foo': [Object] } ] }

我将如何循环这个?我尝试过但失败了:

var cleanObject = {}
for (key in dirtyObject) {
    key = key.replace('foo', 'bar');
    cleanObject[key] = dirtyObject[key];
}

最佳答案

提示:这不是“JSON 对象”。不存在“JSON 对象”这样的东西。 “JSON”是一个字符串,代表一个对象。你所拥有的是一个对象文字。

但是,JSON 可以提供帮助。考虑尝试:

var cleanObject = JSON.parse(JSON.stringify(dirtyObject).replace(/foo/g,'bar'));

关于JavaScript 在对象中递归替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21942418/

相关文章:

javascript - 如何使用数据 ['file.file' 访问 JSON]?

javascript - Regex Javascript - 删除两个 html 注释之间的文本

javascript - 使用浅层渲染测试无状态 react 组件中的交互

javascript - iOS 项目中缺少的 .a 文件

javascript - 在循环中更改对象属性变量

javascript - PHP 将多个带有标题的文件上传到 MySQL

Javascript - 获取没有页码的当前页面URL

Javascript:在多个选项卡中播放一次音频

javascript - Bootstrap Navbar(贴)动态宽度

php - 如何在不使用submit的情况下在php中提交下拉框值