如果条件为真,我试图将对象添加到现有数组中。
以下是我的代码
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
}
}
我找不到任何解决方案。请帮忙
答案 0 :(得分: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);
答案 1 :(得分: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
执行操作。