如何在当前现有的 javascipt 对象中添加嵌套对象

Ash*_*war 5 javascript json backend node.js

我试图在我的 javascript 对象中添加一个嵌套对象。我在网上找不到任何解决方案。我有一个来自服务器的响应,我需要在将相同的数据存储到数据库之前设置一些值。

这是对象:

"currentMembership": {
                    "messages": {
                        "isUnlimited": false,
                        "count": 5
                    },
                    "likes": {
                        "isUnlimited": false,
                        "count": 5
                    },
                    "matches": {
                        "isUnlimited": false,
                        "count": 0,
                        "validFor": 0
                    },
                    "backtrack": {
                        "isUnlimited": false,
                        "count": 0
                    }
                }
Run Code Online (Sandbox Code Playgroud)

我正在尝试向我的一些对象添加一个 dailyCount 对象,以便返回的对象更新为:

"currentMembership": {
                    "messages": {
                        "dailyCount": {
                            "date": "2019-12-10T19:33:22.793Z"
                            "count": 5
                        },
                        "isUnlimited": false,
                        "count": 5
                    },
                    "likes": {
                        "dailyCount": {
                            "date": "2019-12-10T19:33:16.664Z",
                            "count": 5
                        },
                        "isUnlimited": false,
                        "count": 5
                    },
                    "matches": {
                        "dailyCount": {
                            "date": "2019-12-10T19:33:16.697Z",
                            "count": 0
                        },
                        "isUnlimited": false,
                        "count": 0,
                        "validFor": 0
                    },
                    "backtrack": {
                        "dailyCount": {
                            "date": "2019-12-10T19:33:16.701Z",
                            "count": 0
                        },
                        "isUnlimited": false,
                        "count": 0
                    },
                    "hasPremiumPlan": false,
                    "hasDMPlan": false,
                    "filters": false
                }
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很棒!:)

小智 5

您可以使用for...in来循环对象的属性。

var i;
for (i in currentMembership) {
  currentMembership[i].dailyCount = {
    date: "2019-12-10T19:33:16.701Z",
    count: 0
  }
}
Run Code Online (Sandbox Code Playgroud)

如果您只针对某些属性,请使用这些键创建一个数组并遍历这些键。

for (var keys = ['messages', 'likes', 'matches', 'backtrack'], i = 0, j = keys.length; i < j; i++) {
  currentMembership[keys[i]].dailyCount = {
    date: "2019-12-10T19:33:16.701Z",
    count: 0
  }
}
Run Code Online (Sandbox Code Playgroud)