【发布时间】:2018-08-06 14:39:59
【问题描述】:
我正在尝试创建一个可以在 Google Apps 脚本中过滤的数组。这在数组由我使用 range.getValues() 从列中获取的值组成时有效,但在我使用循环创建类似的多维数组时无效。
我正在尝试自己创建数组,而不是从工作表中获取它,因为我想要的列不是连续的:一列是第 10 列,下一列是第一列,下一列是第三列等等。
这有效并返回正确过滤的完整多维范围:
function RunReport(){
var errorSS = SpreadsheetApp.getActive();
var enterpriseSheet = errorSS.getSheetByName('Enterprise');
var destSheet = errorSS.getSheetByName('TestSheet');
var sheetData = [];
sheetData = enterpriseSheet.getRange(1, 1, 2000, 4).getValues();
var filtered = sheetData.filter(function(dataRow){
return dataRow[0] === 'Error';
});
Logger.log(filtered);
}
此“有效”但仅返回由“错误值”过滤的数组的第一个“列”,但不返回数组的其他部分:
function RunReport(){
var errorSS = SpreadsheetApp.getActive();
var enterpriseSheet = errorSS.getSheetByName('Enterprise');
var destSheet = errorSS.getSheetByName('TestSheet');
var sheetData = [];
var col1 = enterpriseSheet.getRange(1, 1, enterpriseSheet.getLastRow()).getValues();
var col2 = enterpriseSheet.getRange(1, 10, enterpriseSheet.getLastRow()).getValues();
var col3 = enterpriseSheet.getRange(1, 2, enterpriseSheet.getLastRow()).getValues();
var col4 = enterpriseSheet.getRange(1, 3, enterpriseSheet.getLastRow()).getValues();
for (i = 0; i < col1.length; i++)
{
sheetData.push(col1[i],col2[i],col3[i],col4[i]) ;
}
var filtered = sheetData.filter(function(dataRow){
return dataRow[0] === 'Error';
});
Logger.log(filtered);
}
关于我做错了什么有什么想法吗?
【问题讨论】:
标签: javascript arrays google-apps-script google-sheets