无法向 Mongoose 的对象响应添加新密钥

fla*_*alf 5 javascript key add object

我有这个问题,我不知道为什么。在 for 循环中,我尝试为对象数组中的每个对象分配一个新的键值对,这是来自猫鼬查询的响应。例如

    obj = {
      value1: "someValue",
      value2: [],
      value3: {}
      value4: {
        id: "someId"
      }
   }
Run Code Online (Sandbox Code Playgroud)

如果我尝试做一个 obj.value4.newKey = "newValue" 似乎什么也没有发生,但问题是当我做

console.log(obj.value4.newKey) // prints "newValue"
Run Code Online (Sandbox Code Playgroud)

但是当我这样做的时候

console.log(obj) 
Run Code Online (Sandbox Code Playgroud)

或者

console.log(obj.value4)
Run Code Online (Sandbox Code Playgroud)

之前添加的新密钥似乎不存在

fla*_*alf 8

我真的不知道为什么,但我找到了某种解决方法,这就是有效的(继续第一个示例)

res = JSON.parse(JSON.stringify(obj.value4));
res.newKey = "newValue";
Run Code Online (Sandbox Code Playgroud)

现在我做

console.log(res)
Run Code Online (Sandbox Code Playgroud)

我得到

{
  id: "someId",
  newKey = "newValue"
}    
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?


Man*_*wal 0

您的代码有错误:

obj = {
      value1: "someValue",
      value2: [],
      value3: {} // , is missing
      value4: {
        id: "someId"
      }
   }
Run Code Online (Sandbox Code Playgroud)

您所期待的对我来说很有效,请参阅实际操作