Google 如果不为 null 或为空,则添加 createChoice
Google form add createChoice if not null or empty
我正在尝试向工作表上可用的 google 表单添加一些值。我的脚本看起来像,
for(var i=0;i<numberRows;i++){
if (myShuffled[i][0] == myAnswers[i][0]) {
var addItem = form.addMultipleChoiceItem();
addItem.setTitle(myQuestions[i][0])
.setPoints(1)
.setChoices([
addItem.createChoice(myShuffled[i][0],true),
addItem.createChoice(myShuffled[i][1]),
addItem.createChoice(myShuffled[i][2]),
addItem.createChoice(myShuffled[i][3]),
addItem.createChoice(myShuffled[i][4]),
addItem.createChoice(myShuffled[i][5]),
addItem.createChoice(myShuffled[i][6])
]);
}
....
....
例如我需要添加 myShuffled[i][1]
仅当不为 null 或空时。
我认为您的目标和现状如下。
- 当
myShuffled[i][#]
既不是 null
又不为空时,您想放置 addItem.createChoice
。
- 在您当前的问题中,当
myShuffled[i][#]
不是null
或不为空时,空的选择被放置。
修改点:
- 在这种情况下,我想建议在
setChoices
为 运行 之前创建用于放入 addMultipleChoiceItem()
的选择值。
修改后的脚本:
当您的脚本修改时,请修改如下。
for(var i = 0; i < numberRows; i++) {
if (myShuffled[i][0] == myAnswers[i][0]) {
var addItem = form.addMultipleChoiceItem();
var values = myShuffled[i].reduce((ar, e, i) => {
if (e != null && e != "") ar.push(addItem.createChoice(e, ar.length == 0 ? true : false));
return ar;
}, []);
addItem.setTitle(myQuestions[i][0]).setPoints(1).setChoices(values);
}
}
注:
- 在这种情况下,请通过启用 V8 运行time 使用脚本。
参考:
我正在尝试向工作表上可用的 google 表单添加一些值。我的脚本看起来像,
for(var i=0;i<numberRows;i++){
if (myShuffled[i][0] == myAnswers[i][0]) {
var addItem = form.addMultipleChoiceItem();
addItem.setTitle(myQuestions[i][0])
.setPoints(1)
.setChoices([
addItem.createChoice(myShuffled[i][0],true),
addItem.createChoice(myShuffled[i][1]),
addItem.createChoice(myShuffled[i][2]),
addItem.createChoice(myShuffled[i][3]),
addItem.createChoice(myShuffled[i][4]),
addItem.createChoice(myShuffled[i][5]),
addItem.createChoice(myShuffled[i][6])
]);
}
....
....
例如我需要添加 myShuffled[i][1]
仅当不为 null 或空时。
我认为您的目标和现状如下。
- 当
myShuffled[i][#]
既不是null
又不为空时,您想放置addItem.createChoice
。 - 在您当前的问题中,当
myShuffled[i][#]
不是null
或不为空时,空的选择被放置。
修改点:
- 在这种情况下,我想建议在
setChoices
为 运行 之前创建用于放入addMultipleChoiceItem()
的选择值。
修改后的脚本:
当您的脚本修改时,请修改如下。
for(var i = 0; i < numberRows; i++) {
if (myShuffled[i][0] == myAnswers[i][0]) {
var addItem = form.addMultipleChoiceItem();
var values = myShuffled[i].reduce((ar, e, i) => {
if (e != null && e != "") ar.push(addItem.createChoice(e, ar.length == 0 ? true : false));
return ar;
}, []);
addItem.setTitle(myQuestions[i][0]).setPoints(1).setChoices(values);
}
}
注:
- 在这种情况下,请通过启用 V8 运行time 使用脚本。