Javascript 基于键、值对条件将对象动态推入嵌套数组

Javascript 基于键、值对条件将对象动态推入嵌套数组,javascript,google-apps-script,nested-object,Javascript,Google Apps Script,Nested Object,我的目标如下: {type=stuff, name=blablabla, variableId=x, fingerprint=xxxx, containerId=xxxx, accountId=xxxx, workspaceId=xxx, path=accounts/xxxx/containers/xxxx/workspaces/xx/variables/x, parentFolderId=x, parameter=[{value=auto, type=template, key=xxxxx},

我的目标如下:

{type=stuff, name=blablabla, variableId=x, fingerprint=xxxx, containerId=xxxx, accountId=xxxx, workspaceId=xxx, path=accounts/xxxx/containers/xxxx/workspaces/xx/variables/x, parentFolderId=x, parameter=[{value=auto, type=template, key=xxxxx}, {type=boolean, key=asdasdf, value=false}, {value=false, type=boolean, key=adasdasd}, {type=boolean, value=false, key=asdasdasd}, {type=list, key=fieldsToSet, list=[{map=[{value=asdasdas, type=template, key=asdasdas}, {value=asdasdas, type=template, key=value}], type=map}, {type=map, map=[{type=template, value=page, key=fieldName}, {type=template, key=value, value=asdasdasd}]}]}, {value=false, type=boolean, key=asdasd}, {type=boolean, value=false, key=asdasdasd}, {value=false, type=boolean, key=adasdasd}, {key=dimension, type=list, list=[{type=map, map=[{value=2, key=index, type=template}, {value=asdasd, type=template, key=dimension}]}, {type=map, map=[{value=3, type=template, key=index}, {value=asdasdasd, type=template, key=dimension}]}, {map=[{type=template, value=4, key=index}, {key=dimension, type=template, value=asdasdasd / asdasdasd}], type=map}, {map=[{type=template, value=5, key=index}, {value=asdasd, type=template, key=dimension}], type=map}, {type=map, map=[{value=6, type=template, key=index}, {key=dimension, type=template, value=asdasdasd}]}, {map=[{type=template, key=index, value=7}, {value=asdasd, type=template, key=dimension}], type=map}, {type=map, map=[{key=index, value=8, type=template}, {value=asdasdasd, key=dimension, type=template}]}]}, {key=enableEcommerce, type=boolean, value=false}, {value=asdasdasd, type=template, key=asdasdasd}], tagManagerUrl=https://blabla.com/#/asdasd/accounts/asdasd/containers/xxxxx/workspaces/xxxx/variables/x?apiLink=variable}
我想修改它并将这个对象
{type=map,map=[{key=fieldName,value=cookieExpires,type=template},{key=value,value=33696000,type=template}]}
添加到带有键
fieldsToSet
的嵌套对象中

到目前为止,我已经尝试过类似的方法,但不起作用:

element.parameter.filter(obj => { return obj.key === "fieldsToSet" }).push(newObject);

我需要一些动态的东西,因为对象和数组的数量总是在变化。

我相信您的目标如下

  • 您想使用谷歌应用程序脚本将
    newObject
    添加到
    element.parameter[]
修改点:
  • 在脚本中,
    element.parameter.filter(obj=>{return obj.key==“fieldsToSet”})
    返回对象,包括
    obj.key==“fieldsToSet”
    。这样,当使用
    push(newObject)
    进行此操作时,
    newObject
    被添加到检索到的元素中。我认为这可能是你的问题的原因
在这个回答中,我想提出以下修改脚本。在这个示例脚本中,我将您的值转换为JSON对象,因为我认为您的示例值可以通过
Logger.log
直接从对象获得

修改脚本:
var-element={“type”:“stuff”,“name”:“blabla”,“variableId”:“x”,“fingerprint”:“xxxx”,“containerId”:“xxxx”,“workspaceId”:“xxx”,“path”:“accounts/xxxx/containers/xxxx/workspaces/xx/variables/x”,“parentFolderId”:“x”,“parameter”:[{“value”:“auto”,“type”:“template”,“key”:“xxxxx”},{“type”:“boolean”,“key”:“asdasdf”,“value”:false},{“value”:false,“type”:“boolean”,“key”:“adasdas”},{“type”:“boolean”,“value”:false,“key”:“asdasdasd”},{“type”:“list”,“key”:“fieldsToSet”,“list”:[{“map”:[{“value”:“asdasdas”,“type”:“template”,“key”:“asdasdas”},{“value”:“asdasdas”,“type”:“template”,“key”:“value”},{“value”},{“type”:“map”;“type”:“type”:“type”:“type”:“template”,“value”:“page”,“key”:“fieldName”},{“类型”:“模板”,“键”:“值”,“值”:“asdasdasd”}]},{“值”:false,“类型”:“布尔”,“键”:“asdasd”},{“类型”:“布尔”,“值”:false,“键”:“asdasdasd”},{“值”:false,“类型”:“布尔”,“键”:“adasdasd”},{“键”:“维度”,“类型”:“列表”,“列表”:“{“类型”:“映射”,“映射”:“{“值”:2,“键”:“索引”,“类型”:“模板”},{“值”:“asdasd”;“类型”:“模板”:“模板”,“键”:“维度”}],{“类型”:“映射”,“映射”:[{“值”:3,“类型”:“模板”,“键”:“索引”},{“值”:“asdasdasd”,“类型”:“模板”,“键”:“维度”}],{“映射”:[{“类型”:“模板”,“值”:4,“键”:“索引”},{“键”:“维度”,“类型”:“模板”,“值”:“asdasdasd/asdasdasdasd”}],“类型”:“映射”},{“类型”:“模板”;“值”:“键”:“索引”},{“值”:“索引”“asdasd”,“类型”:“模板”,“键”:“维度”}],“类型”:“映射”},{“类型”:“映射”,“映射”:[{“值”:6,“类型”:“模板”,“键”:“索引”},{“键”:“维度”,“类型”:“模板”,“值”:“ASDASDSD”}],{“映射”:[{“类型”:“模板”,“键”:“索引”,“值”:7},{“值”:“asdasd”,“类型”:“模板”,“键”:“维度”},{“映射”;“类型”:“映射”{“键”:“索引”值:8,“类型”:“模板”},{“值”:“asdasdasd”,“键”:“维度”,“类型”:“模板”}]}]},{“键”:“启用电子商务”,“类型”:“布尔”,“值”:false},{“值”:“asdasdasd”,“类型”:“模板”,“键”:“asdasdasd”}],“tagManagerUrl”:https://blabla.com/#/asdasd/accounts/asdasd/containers/xxxxx/workspaces/xxxx/variables/x?apiLink=variable"};
var newObject={“type”:“map”,“map”:[{“key”:“fieldName”,“value”:“cookieExpires”,“type”:“template”},{“key”:“value”,“value”:33696000,“type”:“template”}]};
element.parameter.forEach(({key},Ua)=>{
如果(键==“fieldsToSet”){
a、 推送(newObject);
}
});

console.log(element);
将其分配给列表中的数组变量。然后运行循环,并在该循环中使用所需数组格式的if条件,并将其存储在字典变量中