Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 结果中仅显示数组中的一个值_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 结果中仅显示数组中的一个值

Javascript 结果中仅显示数组中的一个值,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,这可能是一个比我意识到的更复杂的问题,但我没有编码经验或培训,因此有了一个神秘的标题(我甚至不知道我在这里做什么。关于“循环”的东西我只知道)。所以如果 foundCValues.push(colCdata[1][i])返回一列中的第一个结果,该列应该有多个结果,修复是否简单到只需在colCdata之后的括号内更改某些内容?我试过几种不同的方法,但没有一种能达到我的目的。我想返回整个列,或者返回列中不是NULL的所有值 下面是脚本中这一特定部分的其余部分。如果我需要张贴整个脚本或进一步解释,请让

这可能是一个比我意识到的更复杂的问题,但我没有编码经验或培训,因此有了一个神秘的标题(我甚至不知道我在这里做什么。关于“循环”的东西我只知道)。所以如果
foundCValues.push(colCdata[1][i])
返回一列中的第一个结果,该列应该有多个结果,修复是否简单到只需在
colCdata
之后的括号内更改某些内容?我试过几种不同的方法,但没有一种能达到我的目的。我想返回整个列,或者返回列中不是
NULL的所有值

下面是脚本中这一特定部分的其余部分。如果我需要张贴整个脚本或进一步解释,请让我知道

(变量i=0;i 1)的
{
offset(0,1).clearDataValidations();
var colIndex=colBdata[0].indexOf(activeCell.getValue())+2;
如果(colIndex!=0){
如果(activeCell.getValue()!=“”){
var colBvalidationRange=colBss.getRange(2,colIndex,colBss.getLastRow()-1);
var colBvalidationRule=SpreadsheetApp.newDataValidation().RequireValidationRange(colBvalidationRange.build();
activeCell.offset(0,1).setDataValidation(colBvalidationRule);
}  
}
}
////填充列C数据验证
//如果(e.range.getSheet().getName()!='Items'){
//if(activeCell.getColumn()==2&&activeCell.getRow()>1){
//offset(0,1).clearDataValidations();
//var colCIndex=colCdata[0].indexOf(activeCell.getValue())+2;
//如果(colCIndex!=0){
//如果(activeCell.getValue()!=“”){
//var colCvalidationRange=colCss.getRange(3,colCIndex,colCss.getLastRow()-1);
//var colCvalidationRule=SpreadsheetApp.newDataValidation().requireRewaminList(colCvalidationRange.build();
//activeCell.offset(0,1).setDataValidation(colCvalidationRule);
//        }
//      }
//    }
//填充C列数据验证
if(activeCell.getColumn()==2&&activeCell.getRow()>1){
offset(0,1).clearDataValidations();
Logger.log(“valueToFind=“+valueToFind”);
Logger.log(“colCdata=“+colCdata”);
Logger.log(“colCdata.length=“+colCdata.length”);
对于(变量i=0;i 1){
offset(0,1).clearDataValidations();
var colEIndex=colEdata[0].indexOf(activeCell.getValue())+2;
如果(索引!=0){
如果(activeCell.getValue()!=“”){
var colevalidateRange=colEss.getRange(5,colEIndex,colEss.getLastRow()-1);
var colEvalidationRule=SpreadsheetApp.newDataValidation().requireRewaminList(colEvalidationRange.build();
activeCell.offset(0,1).setDataValidation(colEvalidationRule);
}
}
}
//填充F列数据验证
if(activeCell.getColumn()==5&&activeCell.getRow()>1){
offset(0,1).clearDataValidations();
var colFIndex=colFdata[0].indexOf(activeCell.getValue())+2;
如果(colFIndex!=0){
如果(activeCell.getValue()!=“”){
var colFvalidationRange=colFss.getRange(4,colFIndex,colFss.getLastRow()-1);
var colFvalidationRule=SpreadsheetApp.newDataValidation().requireRewaminList(colFvalidationRange.build();
activeCell.offset(0,1).setDataValidation(colFvalidationRule);
}
}
}
//填充G列数据验证
if(activeCell.getColumn()==6&&activeCell.getRow()>1){
offset(0,1).clearDataValidations();
var colGIndex=colGdata[0].indexOf(activeCell.getValue())+2;
if(colGIndex!=0){
如果(activeCell.getValue()!=“”){
var colGvalidationRange=colGss.getRange(4,colGIndex,colGss.getLastRow()-1);
var colGvalidationRule=SpreadsheetApp.newDataValidation().RequireValidationList(colGvalidationRange.build();
activeCell.offset(0,1).setDataValidation(colGvalidationRule);
}
}
}
}

如果有多行和多列,则可能需要两个计数器才能显示整个阵列。根据阵列的宽度和高度,可以设置限制。如果数据有5行高:

//untested 
for (var q = 0; q < 5; q++) /* counts to height one time for every entire count to 
length*/
{
    for(var i=0;i<colCdata.length;i++) /*counts to length before rolling back to 
height */
    {
     foundCValues.push(colCdata[q][i]); 
    }
}
//未经测试
对于(var q=0;q<5;q++)/*计数到高度,每一次计数到
长度*/
{

对于(var i=0;使用console.log打印出一些中间值,或者使用vscode或chrome devtools和javascript调试器设置断点,单步执行代码并检查变量。这些都是需要学习的宝贵技能。不要认为我们有足够的信息来回答您的问题。我会详细阅读
中的
循环中的开始部分。这是什么您要查找的最终结果是什么?
valueToFind
colCdata.length
告诉您有多少项(从0到length-1索引)可用于
colCdata
数组的第一个索引。因此,在
colCdata[i]之外的任何位置使用索引
i
都没有好处
。作为第二个位置下标没有任何意义,因为此时您不知道有多少项(如果有的话)可用。我想到的是您的行和列索引都混淆了。对于初学者,数组检索的语法是
colCdata[row][col col]
——想象一下网格中的数据。在For循环中“stop”条件,
colCdata.length
是网格中的行数。这使它看起来像是“i”在您的行中移动。但是在“匹配”检查中,
valueToFind==colCdata[0][i]
,我被用来选择一个列。这至少是你的问题的一部分。如果你给出一个关于此数组中数据类型的示例,可能会有所帮助。好的。所有有用的注释。我在脚本中有很多日志记录,所以我一直在检查。我最终找到了[row][col],但就在几分钟前。因此,现在这更有意义了。我试图发布脚本的其余部分,但我认为这是不可能的