The below code filters google spreadsheet based on the boolean expression below. Code thanks to https://stackoverflow.com/users/19043534/newaza
function DeleteEmptyRows() {
const sheet = SpreadsheetApp.getActiveSheet()
const values = sheet.getDataRange()
.getValues()
.filter(row => row[9] !== '' && row[7] !== '' && row[6] !== '')
sheet.getDataRange().clearContent()
return sheet.getRange(1, 1, values.length, values[0].length)
.setValues(values)
}
Nevertheless, I am having an issue that some records are being deleted even not matching the boolean expression.
Is there a way to assert that the lengths of row[9] row[6] and row[7] in the sheet before and after filter-operation ?
so The Error was caused by the boolean expression! Nevertheless, @Tanaike suggestion helps to debug column length.
function delDups() {
const sheet = SpreadsheetApp.getActiveSheet();
const orgValues = sheet.getDataRange().getValues();
console.log(orgValues.length);
const values = orgValues.filter(row => !(!row[7] && !row[6]));
sheet.getDataRange().clearContent();
console.log(values.length);
return sheet.getRange(1, 1, values.length, values[0].length)
.setValues(values);
}