如何基于对象属性生成动态嵌套数组适配Google Docs batchUpdate接口
动态生成Google Docs批量更新请求结构
给定参数对象:
"params": { "name": "Alexa", "lastName": "Simpson", "city": "London" }
需要生成符合Google Docs批量更新接口要求的请求结构,将params的每个键映射为containsText.text的占位符,对应的值映射为replaceText字段内容,最终生成包含多个替换操作的requests数组。
实现代码(JavaScript)
const params = { name: "Alexa", lastName: "Simpson", city: "London" }; // 生成替换请求数组 const requests = Object.entries(params).map(([key, value], index) => ({ replaceAllText: { containsText: { text: `{{text${index + 1}}}`, // 按编号生成占位符,可替换为`{{${key}}}`使用键名作为占位符 matchCase: true }, replaceText: value } })); // 组装最终请求 const batchUpdateRequest = { requests }; // 输出结果 console.log(JSON.stringify(batchUpdateRequest, null, 2));
输出结果(按编号占位符)
{ "requests": [ { "replaceAllText": { "containsText": { "text": "{{text1}}", "matchCase": true }, "replaceText": "Alexa" } }, { "replaceAllText": { "containsText": { "text": "{{text2}}", "matchCase": true }, "replaceText": "Simpson" } }, { "replaceAllText": { "containsText": { "text": "{{text3}}", "matchCase": true }, "replaceText": "London" } } ] }
可选:使用键名作为占位符
如果希望直接用参数键名作为文档中的占位符(比如{{name}}),只需修改text字段的生成逻辑:
text: `{{${key}}}`
对应的输出结果:
{ "requests": [ { "replaceAllText": { "containsText": { "text": "{{name}}", "matchCase": true }, "replaceText": "Alexa" } }, { "replaceAllText": { "containsText": { "text": "{{lastName}}", "matchCase": true }, "replaceText": "Simpson" } }, { "replaceAllText": { "containsText": { "text": "{{city}}", "matchCase": true }, "replaceText": "London" } } ] }
内容的提问来源于stack exchange,提问作者abel conde
相关产品推荐
相关产品推荐

