js对象更新嵌套对象

时间:2020-05-15 16:58:10

标签: javascript jquery object

这是我的JSON:

{
  "language": "eng",
  "plugins": {
    "search": false,
    "import-xml": false,
    "export-xml": false,
    "import-pdf": false,
    "export-pdf": false
  },
  "tabs": {
    "general": {
      "arm": "Գլխավոր",
      "rus": "Главный",
      "eng": "General",
      "documentTitle": {
        "arm": "Փաստաթղթի Անվանումը",
        "rus": "Заголовок Документа",
        "eng": "Document Title"
      },
      "sections": {
        "14656691": {
          "type": "field-section",
          "title": "",
          "elements": {
          },
          "collapse": false
        },
        "06558184": {
          "type": "table-section",
          "title": "",
          "elements": {
          },
          "collapse": false
        }
      }
    },
    "custom-19588079": {
      "arm": "Custom",
      "rus": "Custom",
      "eng": "Custom",
      "documentTitle": {
        "arm": "Փաստաթղթի Անվանումը",
        "rus": "Заголовок Документа",
        "eng": "Document Title"
      },
      "sections": {
      }
    }
  }
}

例如,我想在常规部分对象中添加新对象。我该怎么办?

我试图做这样的事情,但是不能正常工作:

let config = {} (my object);

config = {...config.general.sections, ...{new object}}

但是config的结果是config.general.sections个对象。

3 个答案:

答案 0 :(得分:0)

尝试这样做:

let config = {} (my object);
let newObject = {"newKey":"newValue"};
config.general.newSection = newObject;
console.log(config);

或尝试以下操作:

let config = {} (my object);
let newObject = {"newKey":"newValue"};
config['general']['newSection'] = newObject;
console.log(config);

我回到家了

答案 1 :(得分:0)

有一个简单的方法可以与新部分合并并重新分配它:

config.tabs.general.sections = {
  ...config.tabs.general.sections,
  newSection: {},
};

这是一个很好的解释https://dmitripavlutin.com/object-rest-spread-properties-javascript/

答案 2 :(得分:0)

如果您知道所需值的路径,此代码将非常有用。

https://stackoverflow.com/a/66440832/1602673