javascript - 如何使用键详细信息修改嵌套对象的属性

标签 javascript object

我有一个嵌套对象,其结构如下:

let obj = {
  id1: {
    key1: value1,
    files: {
      fileid1: {},
      fileid2: {}
    }
  },
  id2: {
    key1: value1,
    files: {
      fileid3: {},
      fileid4: {}
    }
  }
}

我有一个现有的文件 ID,我需要从该对象中找到该文件 ID 并更新该对象的数据。 假设我的文件 ID 等于 fileid3 我该怎么做?

最佳答案

let obj = {
    id1: {
        key1: "value1",
        files: {
            fileid1: {},
            fileid2: {}
        }
    },
    id2: {
        key1: "value1",
        files: {
            fileid3: {},
            fileid4: {}
        }
    }
}

function changeObj(obj, field, value) {
    Object.keys(obj).forEach(key => {

        if (obj[key].files.hasOwnProperty(field))
            obj[key].files[field] = value;

    });
    return obj;
}

console.log(changeObj(obj, "fileid3", "new Value"));

关于javascript - 如何使用键详细信息修改嵌套对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59387868/

相关文章:

javascript - 如何使用 XPCOM 导入 cookie

javascript - 显示一个对象属性值,而另一个引用对象为空

javascript - 如何传递参数以形成 url Action?

javascript - 切换复选框值

C#,对象问题

java - 使用方法打印特定的数组对象

javascript - 将 'this' 替换为另一个同类对象

python - 为什么同一个类的不同对象的方法有相同的id?

javascript - 在用户控件中链接 JavaScript 库

javascript - 替换 div 中的文本而不影响其中的任何 HTML 标记