So I have the below function:
function filterSheet(sheetName, disputeStatus, disputeTypeArr, sourceSValues, removeColumnNumsArr){
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName(sheetName);
let values = sourceSValues.slice();
if(removeColumnNumsArr){
removeColumnNumsArr.sort((a, b) => b - a);
for(let f = 0; f < values.length; f++){
for(let c = 0; c < removeColumnNumsArr.length ;c++){
values[f].splice(removeColumnNumsArr[c]-1,1);
}
}
}
////////////////////////////////////////////////////////////////////////////////Delete prior data
sheet.getRange(2,1,sheet.getLastRow(), sheet.getLastColumn()).clear({contentsOnly: true});
////////////////////////////////////////////////////////////////////////////////Paste updated data
if(values.length !== 0){
sheet.getRange(2, 1, values.length, values[1].length).setValues(values)
}
};
This function is called multiple times like this:
function splitDataToTabs(){
// Source data variables
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sourceSheet = ss.getSheetByName("BQ Data");
const sourceSheetValues = sourceSheet.getRange(2, 1, sourceSheet.getLastRow()-1, sourceSheet.getLastColumn()).getValues();
Logger.log(sourceSheetValues[1].length)
//Filter and paste to 'New' sheet
filterSheet("New", "New Query",["CC FIRST TIME FIX" , "Payment Charge Referral" , "DD Charge Addition" , "No response to letter raise admin fee" , "Customer querying admin fee"], sourceSheetValues, [9,10,11,12]);
Logger.log(sourceSheetValues[1].length)
//Filter and paste to 'Res' sheet
filterSheet("Res", null ,["Awaiting Legal Auth" , "DEBT RECOVERY - Branch COVID Deal" , "DEBT RECOVERY - Termination Request" , "Payment Charge Referral" , "DD Charge Addition" , "No response to letter raise admin fee" , "Customer querying admin fee"],sourceSheetValues, [9,10,11,12] );
Logger.log(sourceSheetValues[1].length)
The problem im having is that the variable 'sourceSheetValues' is getting changed after each call. So when 'sourceSheetValues' is passed into filterSheet for the second time, it already has columns 9,10,11,12 removed.
Logger.log(sourceSheetValues[1].length) is logging 15.0, 11.0, 8.0 when function splitDataToTabs is run.
This feels like im missing something obvious so apologies in advance if thats the case but I cant figure it out.