gpt4 book ai didi

google-apps-script - 为 DuplicateObject 请求创建带有可变键的 objectIds 映射

转载 作者:行者123 更新时间:2023-12-01 15:01:08 24 4
gpt4 key购买 nike

当创建“重复对象”请求时,objectIds 映射不允许我在下面的emphasized 部分放置变量:

var alternateSlideId = 'alternate_' + i;
{
duplicateObject:
{
objectId: alternateSlide,
objectIds: {
**alternateSlide**: 'Copied_Alternate_Slide_' + i,
}
}
}

(i是一个循环中的数字)根据我的理解, map 功能的工作方式如下
((要复制的objectId) : (新objectId的名称))
我无法在 map 函数的左侧使用变量,也无法将 'alternate_' + i 放入 map 的左侧,我不确定为什么。我需要复制多张之前已经复制过的幻灯片,因此具有变量名称。

如何将变量键分配给 objectIds 映射?

最佳答案

您需要指定唯一 ID。不仅仅是幻灯片,而是整个演示文稿。考虑像我在 this answer 中那样使用 Utilities.getUuid() .

Google Apps Script 本质上是 JavaScript 1.6,因此要写入变量属性名称,您需要使用括号运算符,而不是对象文字构造函数中的点运算符或变量名称/简写语法。您过去的尝试可能试图从构造函数中执行此操作:

不会工作(对象字面量构造函数):

var v = "some prop name";
var myObj = {
v: "some prop value",
};
console.log(myObj); // {'v': 'some prop value'}

不起作用(点运算符):

var v = "some prop name";
var myObj = {};
myObj.v = "some prop value";
console.log(myObj); // {'v': 'some prop value'}

不会工作(因为 GAS 不是 ECMAScript2015 或更新版本),并在保存时抛出“无效的属性 ID”错误:

var v = "some prop name";
var myObj = {
[v]: "some prop value",
};
console.log(myObj);

将工作(括号运算符):

var v = "some prop name";
var myObj = {};
myObj[v] = "some prop value";
console.log(myObj); // {'some prop name': 'some prop value'}

因此,复制由变量 altSlide 表示的幻灯片的代码需要类似于:

var newAltSlideId = ("copied_altSlide_" + i + "_" + Utilities.getUuid()).slice(0, 50);
var dupRqConfig = {
objectId: altSlide.objectId, // the object id of the source slide
objectIds: {} // map between existing objectIds on the altSlide, and the new ids
};
// Set the duplicate's ID
dupRqConfig.objectIds[altSlide.objectId] = newAltSlideId;
// If you want to set the objectIds in the duplicate, you need to
// loop over altSlide's child objects. An example:
altSlide.pageElements.forEach(function (child, index) {
dupRqConfig.objectIds[child.objectId] = /** some new id */;
});
requests.push({ duplicateObject: dupRqConfig }); // add the request to the batchUpdate list

引用资料:

关于google-apps-script - 为 DuplicateObject 请求创建带有可变键的 objectIds 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51728567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com