javascript - Google Script for 循环未运行
问题描述
我正在尝试使用 chg 数组检查 org 数组中的重复项。如果临时数组没有重复的推送值。
function uList(org, chg){
//return a unique list
var org ;
var chg ;
var temp ;
for(var i=0;i<=org.legnth;i++){
for(var j=0;j<=chg.length;j++){
if(org[i][0]==chg[j][0]){
if(temp.length>0) {temp.pop();}
}else{
temp.push(org[i][0]);
}
}
}
return temp;
}
整个代码 如下所示。
function onEdit(e){
// Browser.msgBox("test");
updateForm();
}
function uList(org, chg){
//return a unique list
var org ;
var chg ;
var temp ;
for(var i=0;i<=org.legnth;i++){
for(var j=0;j<=chg.length;j++){
if(org[i][0]==chg[j][0]){
if(temp.length>0) {temp.pop();}
}else{
temp.push(org[i][0]);
}
}
}
return temp;
}
function updateForm(){ // select list from name
// call your form and connect to the drop-down item
var form = FormApp.openById("");
var namesList = form.getItemById("").asListItem(); //data-item-id
// identify the sheet where the data resides needed to populate the drogp-down// Mask_order (responses)
var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/').getSheetByName("");
var names =ss;
var namesValues =names.getRange("F2:F").getValues();//desired dorpdown list
var total=names.getRange("H2").getValue();//Define COUNTA
var org_list=names.getRange("E2:E").getValues();//original list
var chg_list=names.getRange("D2:D").getValues();//Redeem list
var the_list=uList(org_list,chg_list);
//var thelist=uList(org_list,chg_list);
// names.getRange("F2").setValue("2");
var temp=form.getItemById("").setHelpText("No. of :"+total)// Mask redeem help text.
debugger;
var studentNames = [];
// convert the array ignoring empty cells
for(var i = 0; i < namesValues.length; i++)
if(namesValues[i][0] != "")
studentNames[i] = namesValues[i][0];
// populate the drop-down with the array data
namesList.setChoiceValues(studentNames);
}
在 Google 脚本调试模式下,临时对象是没有数据的对象。
我试图将调试器放在任何地方,但它没有进入 for 循环。
将 for 循环放在 updateForm() 中,它不会运行。
为了创建一个演示函数,我可以访问数据并将数据传递给不同的函数。
- 要更改变量的名称,它不起作用。
解决方案
导致错误的错字..... org.legnth --> 应该是org.length 我正在尝试获取数组长度
function uList(org, chg){
//return a unique list
var org ;
var chg ;
var temp ;
for(var i=0;i<=org.legnth;i++){
for(var j=0;j<=chg.length;j++){
if(org[i][0]==chg[j][0]){
if(temp.length>0) {temp.pop();}
}else{
temp.push(org[i][0]);
}
}
}
return temp;
}
改成
function uList(org, chg){
//return a unique list
var org ;
var chg ;
var temp=[] ;
for(var i=0;i<=org.legnth;i++){
for(var j=0;j<=chg.length;j++){
if(org[i]==chg[j]){
if(temp.length>0) {temp.pop();}
}else{
temp.push(org[i][0]);
}
}
}
return temp;
}
更改日志:
- org.length,一个错字更正
- 删除 org 和 chg 后面的 [0] ,因为它的一维数组
- 将 var temp 定义为数组,因为我的第一个项目需要被推送。
2020-01-30 0023 GMT+8
推荐阅读
- javascript - 如何检查容器是否在顶部溢出?
- android - 我应该将 Workmanager 用于应一个接一个运行的 3 个任务吗?- 安卓工作室
- c++ - C++ 头文件包含顺序,奇怪的行为
- excel - VBA:根据其中是否有数据将所有列数据从公式转换为值?
- dart - 为什么 runZonedGuarded 会阻止执行以下代码?
- autohotkey - AHK 使用 Escape
逃生示例 - azure - 如何为 Azure 中的逻辑应用处理多个新的 blob 文件?
- javascript - 如何从firebase数据库获取最后一个值到JavaScript?
- c++ - 我们如何从文件中读取并将其存储到 c++ 中的不同对象中?
- python - 如何缩放数据但参考另一个选择的值