按日期过滤数组并将匹配数据集传递给新数组以写入 google sheet
filtering an array by date and pass matching data set to a new array to be written into a google sheet
您好,我目前正在尝试使用 ArrayLib 比较一组数据,但它无法匹配我的任何日期,因此传递了所有数据集,而不仅仅是日期范围之间的数据集。如果有更好的方法来实现这一点,我愿意接受
[我目前正在使用的代码副本][1]:https://i.stack.imgur.com/Uj7Wo.png
编辑:根据要求 Google sheet 样本数据 table 即时使用:https://docs.google.com/spreadsheets/d/1whrB9O84i85grz6Av3EY-hnGGNvVG6ji_v5w7X_rMG0/edit?usp=sharing
您可以尝试下面的示例脚本,而不是使用单独的库按日期过滤多维数组:
示例脚本
function main() {
var ssLc = SpreadsheetApp.getActive().getActiveSheet();
var rangeLc = ssLc.getRange('A1:R15');
var Lc = rangeLc.getValues();
var startDate = new Date('January 04, 2021 08:00:00'); //Used GMT time on my testing
var endDate = new Date('June 03, 2021 08:00:00'); //Used GMT time on my testing
var sampleResult = filterByDate(Lc, startDate, endDate);
for(x=0; x<sampleResult.length;x++){ //Sample loop to log the each filtered array data
Logger.log(sampleResult[x]);
}
}
function filterByDate(arrayData, startDate, endDate){
var newArrayResult = [];
for(index = 0; index < arrayData.length; index++){
if(arrayData[index][0].getTime() >= startDate.getTime() && arrayData[index][0].getTime() <= endDate.getTime()){
newArrayResult.push(arrayData[index]);
}
}
return newArrayResult;
}
示例结果:
Used your sample spreadsheet data:
Sample result by filtering data from January 04, 2021 to June 03, 2021
您好,我目前正在尝试使用 ArrayLib 比较一组数据,但它无法匹配我的任何日期,因此传递了所有数据集,而不仅仅是日期范围之间的数据集。如果有更好的方法来实现这一点,我愿意接受 [我目前正在使用的代码副本][1]:https://i.stack.imgur.com/Uj7Wo.png
编辑:根据要求 Google sheet 样本数据 table 即时使用:https://docs.google.com/spreadsheets/d/1whrB9O84i85grz6Av3EY-hnGGNvVG6ji_v5w7X_rMG0/edit?usp=sharing
您可以尝试下面的示例脚本,而不是使用单独的库按日期过滤多维数组:
示例脚本
function main() {
var ssLc = SpreadsheetApp.getActive().getActiveSheet();
var rangeLc = ssLc.getRange('A1:R15');
var Lc = rangeLc.getValues();
var startDate = new Date('January 04, 2021 08:00:00'); //Used GMT time on my testing
var endDate = new Date('June 03, 2021 08:00:00'); //Used GMT time on my testing
var sampleResult = filterByDate(Lc, startDate, endDate);
for(x=0; x<sampleResult.length;x++){ //Sample loop to log the each filtered array data
Logger.log(sampleResult[x]);
}
}
function filterByDate(arrayData, startDate, endDate){
var newArrayResult = [];
for(index = 0; index < arrayData.length; index++){
if(arrayData[index][0].getTime() >= startDate.getTime() && arrayData[index][0].getTime() <= endDate.getTime()){
newArrayResult.push(arrayData[index]);
}
}
return newArrayResult;
}
示例结果:
Used your sample spreadsheet data:
Sample result by filtering data from January 04, 2021 to June 03, 2021