问题描述
我正在尝试根据特定条件“推送”对象内部的信息。
我需要在属性“材料”中插入/推送/分配更多信息,但我不确定如何执行此操作。
这是我当前对象的结构:
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
},}
我正在尝试添加/推送,如果满足条件,则对象属性“材料”中显示如下所示的变量(“additional1”和“additional2”),而不替换/删除对象中的任何其他信息:>
var additional1 = { "link2": { "url": "www.yahoo.com",} }
var additional2 = { "link3": { "url": "www.bing.com",} }
我正在寻找看起来像这样的 END 结果(假设满足“if 语句”/条件):
const MYOBJECT = {
"status": "Work","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,"year": resource.date_year
},}
解决方法
materials
是一个数组,因此您可以使用 push() method 在那里添加新成员。
最终的结果应该是这样的:
if (conditionIsMet) {
MYOBJECT.materials.push(additional);
}
请注意,push() 方法将元素添加到数组的末尾,因此如果您希望结果位于数组的中间(就像您在示例中所做的那样),您需要指定额外的这个逻辑。