向数组对象添加对象

3
我正在尝试向现有数组添加对象,如果条件为真。
以下是我的代码。
RequestObj = [{
    "parent1": {
        "ob1": value,
        "ob2": {
            "key1": value,
            "key2": value
        },
    },
},
{
    "parent2": {
        "ob1": value,
        "ob2":{
            "key1":value,
            "key2": value
        }
    }
}]

在这里,如果条件成立,我正在尝试将一个对象添加到RequestObj数组中。我可以使用RequestObj.push()。但我不知道如何将其添加到parent1对象中。

if (key3 !== null) {
    // add this below object to parent1 object
    "ob3": {
        "key1": value,
        "key2": value
    }
}

我找不到任何解决方案。请帮忙。


这是一个对象数组.. 我错过了方括号。 - arunkumar
1
你的括号还是不匹配。 - CertainPerformance
如果我理解正确的话,您想要覆盖 parent1 或 parent2 对象中的 key1 和 key2。是这样吗? - Doh09
你想要的最终对象是什么? - Hoyen
"parent1": { "ob1": 值, "ob2": { "key1": 值, "key2": 值 },"ob3": { "key1": 值, "key2": 值 } - arunkumar
我想将 ob3 添加到 parent1 中。 - arunkumar
2个回答

3

向数组添加元素的方法是使用push函数。

// Create new object
var newObject = {
    "ob3": {
        "key1": value,
        "key2": value
    }
};
// Add new object to array
RequestObj.push(newObject);

您也可以直接将一个对象推入数组中,而不需要先声明一个变量:
// Add new object to array
RequestObj.push({
    "ob3": {
        "key1": value,
        "key2": value
    }
});

更新

如果你不是将数据推入到数组中,而是在数组中添加一个对象的新属性,你需要知道该元素在数组中的位置,例如第一个元素就是 RequestObj[0]

然后在该元素内部,你需要向 parent1 对象(RequestObj[0].parent1)添加一个新属性:

RequestObj[0].parent1.ob3 = {
      "key1": "A",
      "key2": "B"
 };

var RequestObj = [{
  "parent1": {
    "ob1": "A",
    "ob2": {
      "key1": "B",
      "key2": "C"
    },
  },
  "parent2": {
    "ob1": "D",
    "ob2": {
      "key1": "E",
      "key2": "F"
    }
  }
}];

var key3 = 'somethingNotNull';

if (key3 !== null) {
  RequestObj[0].parent1.ob3 = {
      "key1": "A",
      "key2": "B"
  };
}
console.log(RequestObj);


我需要将ob3对象推入parent1中。 - arunkumar
每个父级1?还是仅数组中的第一项。 - Joe Warner
只有对于parent1,它可能不是第一项。 - arunkumar

0
你应该在循环中迭代RequestObj,并通过键parent1查找对象。
为此,您可以使用.filter函数,如下所示:
for(let i = 0; i < RequestObj.lenght; i++) {
   let found_object = RequestObj[i].filter(function (r) {
      return r == 'parent1'
   });
}

然后您可以对found_object执行操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接