如何修改对象

How to modify an object

我正在尝试根据特定条件将信息“推送”到对象内部。

我需要 insert/push/assign 属性“材料”中的更多信息,但我不确定如何操作。

这是我当前对象的结构:

const MYOBJECT = {
        "status": "Work",
        "present": true,
        "materials": [
                   {
                     "link1": {
                          "url": "www.google.com",
                             }
                   },
                   {
                    "driveFile": {
                          "driveFile": {
                             "id": "xyz123456fghtfsdag"       
                                       },
                           "shareMode": "VIEW" 
                                 }
                   },    
                  ],
        
        "dueDate": {
            "day": resource.date_day,
            "month": resource.date_month,
            "year": resource.date_year
          },
}

我正在尝试add/push,如果满足条件,下面显示的变量(“additional1”和“additional2”)在对象属性“materials”中没有replacing/deleting 对象内的任何其他信息:

var additional1 = { "link2": { "url": "www.yahoo.com", } }
var additional2 = { "link3": { "url": "www.bing.com", } }

我正在寻找这样的 END 结果(假设满足“if 语句”/条件):

 const MYOBJECT = {
            "status": "Work",
            "present": true,
            "materials": [
                       {
                         "link1": {
                              "url": "www.google.com",
                                 }
                       },
                       // Insert variable addition1
                       {
                         "link2": {
                              "url": "www.yahoo.com",
                                 }
                       },
                       // Insert variable addition2
                       {
                         "link3": {
                              "url": "www.bing.com",
                                 }
                       },
                       {
                        "driveFile": {
                              "driveFile": {
                                 "id": "xyz123456fghtfsdag"       
                                           },
                               "shareMode": "VIEW" 
                                     }
                       },    
                      ],
            
            "dueDate": {
                "day": resource.date_day,
                "month": resource.date_month,
                "year": resource.date_year
              },
    }

materials 是一个数组,因此您可以使用 push() method.

在其中添加新成员

最终结果将如下所示:

if (conditionIsMet) {
  MYOBJECT.materials.push(additional);
}

请注意,push() 方法将元素添加到数组的末尾,因此如果您希望结果位于数组的中间(就像您在示例中所做的那样),您需要为此指定附加逻辑。