迭代列

问题描述 投票:0回答:1

我有一个包含一年中月份的数组,我想提取给定月份的数值。例如,如果月份是三月,则应返回 3(我可以通过在数组中指定单个索引来实现)。

我想做同样的事情,但我想设置一个 for 循环,迭代每个单元格的列并返回所有 12 个月的数值。目前,我收到一条错误消息,

参数 (number[],String,String) 与 Utilities.formatDate 的方法签名不匹配。

我该如何解决这个问题?我的部分代码如下。

function allData_Price_2020 (sheet1, sheet2) {

var data1 = sheet1.getRange("B:D").getValues(); // Get all PNs, CCs, LCs 
var data2 = sheet2.getRange("A:A").getValues(); // Get concatenated PNs, CCs, LCs 
var data3 = sheet2.getDataRange().getValues(); // Get all data from tab
var data4 = sheet1.getRange(4, 93, 1, 12).getValues(); // Get months from Price Table in tab 

for (var i = 4; i < data1.length; i++) { // Start iteration on row 5

for (var j = 1; j < data4[0].length; j++) {

  
  var month = Utilities.formatDate(data4,Session.getScriptTimeZone(), "MM"); // Extracts the month from date timestamp

// Rest of the code is irrelevant 

}
}
}
javascript for-loop google-apps-script iterator
1个回答
0
投票

以下行分配为可能包含字符串、数字、布尔值和日期对象的数组的数组:

var data4 = sheet1.getRange(4, 93, 1, 12).getValues();

代码将整个数组数组作为第一个参数传递,而不是传递日期对象

var month = Utilities.formatDate(data4,Session.getScriptTimeZone(), "MM"); // Extracts the month from date timestamp

在没有数据样本的情况下,不清楚应该采取什么修复措施,但您可以尝试替换

data4[rowIndex][columnIndex]
形式的某些内容。

© www.soinside.com 2019 - 2024. All rights reserved.