需要根据旁边的数据跳过一些数据
Need to skip some data depending on data next to it
我正在尝试将数据添加到来自 google sheet 的 google 表单。我真的可以做到。但是知道我想跳过一些选项,我想跳过星期天。我有这个 table->
实际上我正在使用此代码将选项添加到表单中:
function getDataFromSpreadSheet(){
var [header, ...data] = timeStore.getDataRange().getDisplayValues();
var choices = {};
header.forEach(function(title, index){
choices[title] = data.map(row => row[index]).filter(e => e !== "");
});
Logger.log(choices);
return choices;
}
function populateTimeOptions(){
var items = googleForm.getItems();
var choices = getDataFromSpreadSheet();
items.forEach(function(item){
var itemTitle = item.getTitle();
Logger.log(itemTitle);
if(itemTitle in choices){
var itemType = item.getType();
Logger.log(itemType + " " + itemTitle);
switch(itemType){
case FormApp.ItemType.LIST:
item.asListItem().setChoiceValues(choices[itemTitle]);
default:
Logger.log("Ignore question", itemTitle);
}
}
});
}
我不太了解 JavaScript 但我想这应该是添加数据和添加过滤器选项的正确方法。
希望有人能帮助我。
感谢阅读。
data.forEach(r => {if(r[1] != 'Sunday'});
在映射数据之前,您可以先过滤数据以删除属于星期日的日期。
示例代码:
function getDataFromSpreadSheet(){
var [header, ...data] = timeStore.getDataRange().getDisplayValues();
var choices = {};
header.forEach(function(title, index){
choices[title] = data.filter(row => row[1] !== 'Sunday').map(row => row[index]).filter(e => e !== "");
});
Logger.log(choices);
return choices;
}
修改完成:
- 通过检查索引 1 值是否不是
Sunday
来过滤 data
。 data.filter(row => row[1] !== 'Sunday')
输出:
执行日志
2:42:55 AM Notice Execution started
2:42:56 AM Info {Day=[Thursday, Friday, Saturday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Monday, Tuesday, Wednesday], Date=[07/01/2021, 07/02/2021, 07/03/2021, 07/05/2021, 07/06/2021, 07/07/2021, 07/08/2021, 07/09/2021, 07/10/2021, 07/12/2021, 07/13/2021, 07/14/2021]}
2:42:58 AM Notice Execution completed
我正在尝试将数据添加到来自 google sheet 的 google 表单。我真的可以做到。但是知道我想跳过一些选项,我想跳过星期天。我有这个 table->
实际上我正在使用此代码将选项添加到表单中:
function getDataFromSpreadSheet(){
var [header, ...data] = timeStore.getDataRange().getDisplayValues();
var choices = {};
header.forEach(function(title, index){
choices[title] = data.map(row => row[index]).filter(e => e !== "");
});
Logger.log(choices);
return choices;
}
function populateTimeOptions(){
var items = googleForm.getItems();
var choices = getDataFromSpreadSheet();
items.forEach(function(item){
var itemTitle = item.getTitle();
Logger.log(itemTitle);
if(itemTitle in choices){
var itemType = item.getType();
Logger.log(itemType + " " + itemTitle);
switch(itemType){
case FormApp.ItemType.LIST:
item.asListItem().setChoiceValues(choices[itemTitle]);
default:
Logger.log("Ignore question", itemTitle);
}
}
});
}
我不太了解 JavaScript 但我想这应该是添加数据和添加过滤器选项的正确方法。
希望有人能帮助我。
感谢阅读。
data.forEach(r => {if(r[1] != 'Sunday'});
在映射数据之前,您可以先过滤数据以删除属于星期日的日期。
示例代码:
function getDataFromSpreadSheet(){
var [header, ...data] = timeStore.getDataRange().getDisplayValues();
var choices = {};
header.forEach(function(title, index){
choices[title] = data.filter(row => row[1] !== 'Sunday').map(row => row[index]).filter(e => e !== "");
});
Logger.log(choices);
return choices;
}
修改完成:
- 通过检查索引 1 值是否不是
Sunday
来过滤data
。data.filter(row => row[1] !== 'Sunday')
输出:
执行日志
2:42:55 AM Notice Execution started
2:42:56 AM Info {Day=[Thursday, Friday, Saturday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Monday, Tuesday, Wednesday], Date=[07/01/2021, 07/02/2021, 07/03/2021, 07/05/2021, 07/06/2021, 07/07/2021, 07/08/2021, 07/09/2021, 07/10/2021, 07/12/2021, 07/13/2021, 07/14/2021]}
2:42:58 AM Notice Execution completed