我创建了一个按钮,该按钮将检查一行日期并搜索今天的日期。一旦有了该日期,我计划使用其位置来检查当天的已接收项目列表。我的数据数组出现问题,该数据数组似乎正在编译该行中所有列出的值变成单个对象?当我手动检查值时(例如,data [0] [2]),结果应为单个日期(12/2/18),但是当我要求数据长度时,它返回1,调试器向我显示map()
是“ DECEMBER,12/1 / 2018,12 / 2/2018 ....”。我猜这是我的问题所在,因为我正在使用数据长度属性初始化循环。基本上,我需要知道如何访问那些列值,而不仅仅是行。理想情况下,我希望能够基于这些计数器值来检索另一个单元格的位置。因此,举例来说,沿着-在给定r为行计数器值而c为列计数器值的情况下
data[1]
这是我到目前为止所拥有的:
var today = dailySheet.getRange(r+1,c);
是否还有其他类似于“长度”的属性,它可以计算数组的列而不是行?
答案 0 :(得分:0)
这是您的代码:
function dailyButton0(){
var ss = SpreadsheetApp.openById("1RhhHuelCBVWWXQQQ9j3jiRCScsirofzwDleH-nxeLGw");
var dailySheet = ss.getSheetByName("Daily Papers");
var d = new Date();
var m = d.getMonth();
var mrange;
var strDate = Utilities.formatDate(d,"CST","MM/d/yyyy");
if (m == "10"){mrange = dailySheet.getRange("A95:AF95");} //November
else if(m == "11"){mrange = dailySheet.getRange("A104:AF104");} //December
var data = mrange.getValues();
var dataLength = data.length;
Browser.msgBox("data02 ="+data[0][2]); //returns 12/2/18 correctly
Browser.msgBox("Data Length = "+dataLength); //returns 1
for( var c = 1; c < data.length; c++){
if (data[0][c] == strDate) {
Browser.msgBox(data[0][c]+" matches "+strDate);
}
}
}
data.length始终为1,因为数据是一个看起来像[[col1,col2,col3 .....]]]的数组,即单行。
我有种感觉,你想要这样的东西:
function dailyButton(){
var ss = SpreadsheetApp.openById("1RhhHuelCBVWWXQQQ9j3jiRCScsirofzwDleH-nxeLGw");
var dailySheet = ss.getSheetByName("Daily Papers");
var d = new Date();
var m = d.getMonth();
var mrange;
var strDate = Utilities.formatDate(d,"CST","MM/d/yyyy");
if (m == 10){mrange = dailySheet.getRange("A95:AF95");} //November
else if(m == 11){mrange = dailySheet.getRange("A104:AF104");} //December
var data = mrange.getValues();
var dataLength = data.length;
Browser.msgBox("data02 ="+data[0][2]); //returns 12/2/18 correctly
Browser.msgBox("Data Length = "+dataLength); //returns 1
for(var c=0;c<data[0].length;c++){
if (data[0][c]==strDate){
Browser.msgBox(data[0][c]+" matches "+strDate);
}
}
}
由于getValues()返回零基本数组,所以我从0开始运行循环。因此data [0] [0]是列1中的值。所以我的循环是for(var c=0;c<data[0].length;c++)
。因此data [0] .length是第一行也是唯一行的长度。因此,这使您可以遍历行中的所有列。
我希望这会有所帮助。如果我对自己的假设不正确,请发表评论让我知道,我很乐意删除我的答案。