我需要使用Google Apps脚本反转所选的幻灯片顺序

问题描述

我需要反转所选幻灯片的顺序(如果有选择),否则反转所有幻灯片

here is the code script editor file

示例幻灯片2和幻灯片4在选中后然后在代码执行之后

之前:S1,S2,S3,S4
预期结果:S1,S4,S3,S2

如果未选择幻灯片

之前:S1,S2,S3,S4
预期结果:S4,S3,S2,S1

如果选择了幻灯片1,则选择了幻灯片2和幻灯片4

之前:S1,S2,S3,S4
预期结果:S4,S2,S3,S1

我尝试过

selectedArrayIndex = selectedArrayIndex.reverse();
for (var k = selectedArrayIndex.length - 1; k >= 0; k--) {
    allSlides[k].move(selectedArrayIndex[k] + 1);
}

解决方法

答案

根据documentation所说, 索引应介于零和演示文稿中的幻灯片数量之间(包括两端)。

移动幻灯片后,整个演示文稿幻灯片都会更改索引,因此,实现目标的最佳方法是先更改最后一张幻灯片,而不要向后更改,因为这样做可以使演示文稿幻灯片的索引保持有序。 / p>

假设您有这种情况,您想更改S1,S2和S4:

redAccent

将第一张幻灯片移动到最后一个位置实际上会得到:

S1 -> index 1
S2 -> index 2
S3 -> index 3
S4 -> index 4

将最后一张幻灯片移动到第一个位置,您会得到:

First step        Second step       Third step
S2 -> index 1  |  S3 -> index 1  |  S3 -> index 1
S3 -> index 2  |  S2 -> index 2  |  S4 -> index 2
S4 -> index 3  |  S4 -> index 3  |  S2 -> index 3
S1 -> index 4  |  S1 -> index 4  |  S1 -> index 4

代码

为了获得预期的行为,您应该在代码的最后一个循环中使用此代码。

First step        Second step       Third step
S4 -> index 1  |  S4 -> index 1  |  S4 -> index 1
S1 -> index 2  |  S2 -> index 2  |  S2 -> index 2
S2 -> index 3  |  S1 -> index 3  |  S3 -> index 3
S3 -> index 4  |  S3 -> index 4  |  S1 -> index 4

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...